Cos*_*sti 5 linux unix tar find
我想递归地将所有 .ctl 文件存档在一个文件夹中。
tar -cf ctlfiles.tar `find /home/db -name "*.ctl" -print`
Run Code Online (Sandbox Code Playgroud)
错误信息:
tar: Removing leading `/' from member names
tar: /home/db/dunn/j: Cannot stat: No such file or directory
tar: 74.ctl: Cannot stat: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我有这些文件:/home/db/dunn/j 74.ctl 和 j 75。注意额外的空间。如果文件有其他特殊字符怎么办?如何递归归档这些文件?
小智 6
使用-Ttar的特性告诉它从另一个文件中读取文件列表(tar 将每一行视为一个单独的文件)。
然后,您可以使用<()符号让您的 shell 从命令的输出中生成一个伪文件:
tar cf ctlfiles.tar -T <(find /home/db -name "*.ctl")
Run Code Online (Sandbox Code Playgroud)
如果您的 shell 不支持<()表示法,您可以使用临时文件:
find /home/db -name "*.ctl" > ctlfile-list
tar cf ctlfiles.tar -T ctlfile-list
rm ctlfile-list
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9167 次 |
| 最近记录: |