相关疑难解决方法(0)

为什么循环查找的输出是不好的做法?

这个问题的灵感来自

为什么使用 shell 循环处理文本被认为是不好的做法?

我看到这些结构

for file in `find . -type f -name ...`; do smth with ${file}; done
Run Code Online (Sandbox Code Playgroud)

for dir in $(find . -type d -name ...); do smth with ${dir}; done
Run Code Online (Sandbox Code Playgroud)

几乎每天都在这里使用,即使有些人花时间对这些帖子发表评论,解释为什么应该避免这种东西......
看到此类帖子的数量(以及有时这些评论被简单地忽略的事实)我想我还不如问一个问题:

为什么循环find的输出是不好的做法,为 返回的每个文件名/路径运行一个或多个命令的正确方法是find什么?

find filenames files for

193
推荐指数
4
解决办法
3万
查看次数

是否可以使用 inode 重命名文件或目录?

我将 /home 目录更改为不同的分区,但无法从中访问文件,我已经能够从这个问题中解决一些问题 -在切换到不同的分区后如何访问先前安装的内容?.

如果我之前已经注意到目录的 inode,我是否可以单独使用它来重命名目录?

inode rename

10
推荐指数
2
解决办法
4809
查看次数

名称为空的文件

我正在编写一个用于在给定目录中显示文件的小部件,我想知道是否需要涵盖文件名称为空的情况。

测试显示结果不明显,所以我想知道是否有人有确切的信息

$ touch ""
touch: cannot touch `': No such file or directory

$ echo > ""
bash: : No such file or directory
Run Code Online (Sandbox Code Playgroud)

filenames

9
推荐指数
1
解决办法
9212
查看次数

删除名称以“?”开头的文件 在命令行中

我在 Debian stable、Cinnamon DE 下运行,我有一些文件想用命令行删除(现在我用 Nemo 删除这些文件)。

例如,这些.txt文件以“?”开头。在 shell 和 Nemo 中,这个 '?' 被回车代替:

$@debian: ls
ssolveIncpUL46pK  ?ssolveIncpUL46pK.txt
Run Code Online (Sandbox Code Playgroud)

尼莫

我试过:

 rm ?ss*
 rm \?ss*
 rm \ ss*
Run Code Online (Sandbox Code Playgroud)

command-line debian nemo delete

7
推荐指数
3
解决办法
3448
查看次数

删除包含非打印字符的文件

我遇到过一个意外创建的文件,并且文件名非常糟糕。的输出ls -lq

ls -lq
total 2
-rw-r--r--. 1 mbyx7ag2 zk01 0 May  1  2014 ???E@X?p@8?@
Run Code Online (Sandbox Code Playgroud)

我曾无数次尝试杀死这个东西,但到目前为止都无济于事。每当我收到错误,因为该文件不存在,尽管ls在那里显示它并且能够使用stat它:

stat ^A?E\@X?p\@8^H\@ 
  File: `\001\360\265E@X\342p@8\b@'
  Size: 0           Blocks: 3          IO Block: 32768  regular empty file
Device: 1ah/26d Inode: 5239755888  Links: 1
Access: (0644/-rw-r--r--)  Uid: (231058/mbyx7ag2)   Gid: (10027/    zk01)
Access: 2014-05-01 15:47:28.638919596 +0100
Modify: 2014-05-01 15:47:28.638919596 +0100
Change: 2014-05-01 15:47:28.638919596 +0100
Run Code Online (Sandbox Code Playgroud)

有趣的是,那里的 stat 命令是制表符补全的结果,看起来与其他地方使用的名称完全不同。

我尝试过这些问题中的想法:

如何删除没有名称的文件

有没有办法找到只包含非打印字符的文件?

我还尝试了从文件名中删除非打印字符 - 北极地区超级计算中心(在“删除非打印字符”下)的两种方法。

令人担忧的是,使用 inode 的所谓“万无一失”的技巧如下:

ls -i
5239755888 ???E@X?p@8?@
find . …
Run Code Online (Sandbox Code Playgroud)

bash

5
推荐指数
2
解决办法
6882
查看次数

标签 统计

filenames ×2

bash ×1

command-line ×1

debian ×1

delete ×1

files ×1

find ×1

for ×1

inode ×1

nemo ×1

rename ×1