文件管理与归档备份全攻略
处理特殊文件名
Unix 类系统允许文件名中包含空格甚至换行符,这给像 xargs 这类构建命令参数列表的程序带来了问题。因为文件名中的空格会被当作分隔符,导致命令将空格分隔的每个单词都视为单独的参数。
为了解决这个问题,find 和 xargs 允许使用空字符(null character)作为参数分隔符。在 ASCII 编码中,空字符用数字 0 表示,而空格字符用数字 32 表示。find 命令提供了 -print0 动作,用于生成以空字符分隔的输出;xargs 命令有 –null 选项,用于接受以空字符分隔的输入。示例如下:
find ~ -iname '*.jpg' -print0 | xargs --null ls -l
通过这种技术,我们可以确保所有文件,即使文件名中包含空格,也能被正确处理。
创建测试环境
现在我们来实际运用 find 命令。首先,创建一个包含大量子目录和文件的测试环境:
[me@linuxbox ~]$ mkdir -p playground/dir-{00{1..9},0{10..99},100}
[me@linuxbox ~]$ touch playground/dir-{00{1..9},0{10..99},100}/file-{A..Z}
这两行命令创建了一个名为 playground 的目录,其中包含 100 个子目录,每个子目录又包含 26 个空文件。这里使用
超级会员免费看
订阅专栏 解锁全文
68

被折叠的 条评论
为什么被折叠?



