我猜在大多数情况下,在提取 tar 存档时,我们会得到一个与存档文件同名但后缀不同的目录。但是在一些不幸的情况下,正如我今天遇到的那样,在解压缩 tarball 后,我发现工作目录中散布着很多文件,这很麻烦。
所以我想向您学习的是 - 我如何移动那些新创建的文件?我知道那里应该有一些“查找加rm”奇特的方法,但我不知道具体如何。
mct*_*ylr 32
我想知道man find会说什么。然后你甚至可以展示你的努力。
find . -type f -cmin -1
find . -type f -cmin -1 -delete
Run Code Online (Sandbox Code Playgroud)
-type f用于指定唯一的规则文件被选中。-cmin -1文件的状态,在不到过去(之一)分钟最后改变。-delete标志告诉 find 删除已知宇宙中的所有电子文件或类似的东西,因此在使用它时要小心。首先做运行测试,而不该-delete被强烈推荐标志。
Note-delete是一个不可移植的扩展。
我建议find在使用之前阅读联机帮助页,因为它涵盖了可能适用于您的情况的各种陷阱和警告。
find . -mtime -60s -exec mv {} /dest/dir \;
Run Code Online (Sandbox Code Playgroud)
查找当前目录(和子目录)中最近 60 秒内修改过的每个文件,并将它们移动到 /dest/dir。
最简单的方法(假设您没有图形界面)是使用mc。它可以按日期对文件进行排序。
您还可以从命令行删除 tar 中的文件:
> rm $( tar -ztf mytar.tar.gz )
Run Code Online (Sandbox Code Playgroud)
(-ztf) 用于 tar.gz 文件。您可以对普通 tar 文件使用 (-tf),或对 tar.bz2 文件使用 (-jtf)。
如果文件列表太大,并且上面的命令阻塞,您可以使用 xargs:
> tar -ztf mytar.tar.gz | xargs rm
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29059 次 |
| 最近记录: |