文件处理、压缩、归档与备份全攻略
1. 处理特殊文件名
在类 Unix 系统中,文件名允许包含空格甚至换行符,这会给像 xargs 这类构建参数列表的程序带来问题。因为嵌入的空格会被当作分隔符,导致命令将每个以空格分隔的单词解释为单独的参数。
为解决这个问题,find 和 xargs 允许使用空字符作为参数分隔符。在 ASCII 中,空字符由数字 0 表示,而空格字符由数字 32 表示。find 命令提供了 -print0 动作,用于生成以空字符分隔的输出;xargs 命令有 –null 选项,用于接受以空字符分隔的输入。示例如下:
find ~ -iname '*.jpg' -print0 | xargs --null ls -l
使用这种技术,能确保所有文件(包括文件名中包含嵌入空格的文件)都能被正确处理。
2. 创建测试环境
现在,我们来创建一个包含大量子目录和文件的测试环境:
[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 个空文件。
这里使用了熟悉的 m
超级会员免费看
订阅专栏 解锁全文
69

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



