我想找到并压缩/归档所有以 .sh 结尾的脚本,所以我写了类似的内容:
touch ~/archive.tar; find ~ -type f -name '*.sh' -exec rvf ~/archive.tar {} \;
问题是,在我创建一个名为 archive.tar 的存档后,存档不会将文件解压到当前目录,而是解压到从中存档的目录。例如,可以调用存档脚本~/Desktop/wtf/delete.sh
,但它将被提取到文件夹中wtf
,而不是我当前所在的当前目录中。那么如何编辑我的查找脚本以使所有脚本都采用这种格式 ./filename.sh?
答案1
假设您正在使用GNU tar
,您可以说:
tar --transform 's/.*\///' -xzf archive.tgz
这将从文件名中删除直到最后一个斜杠的所有内容。