Linux:从多个目录复制一个文件

标签 linux copy tar

我有一种情况,我想从 linux 下的数千个目录中复制一个特定文件“transaction.log”,并构建一个包含这些相同特定文件的 tar 文件。

例子: 我在/user/foo/dirs/下有数千个目录

/user/foo/dirs/dir1
/user/foo/dirs/dir2
/user/foo/dirs/dir3
..
..
..
/user/foo/dirs/dir50000

在每个目录中,有几个文件和一个 transaction.log 文件。我想从所有 50000 个目录中复制这个 transaction.log 文件并将它们存储在一个 tar 文件中。

如果有办法,你能帮帮我吗?

谢谢。

解决方案:

好的,我发现了这个问题,因为有一些指向其他磁盘的符号链接(symbolic link)发现工作不正常。解决方案是将 -follow 选项与 find 一起使用以跟踪符号链接(symbolic link)。谢谢。 我使用以下命令

找到。 -follow -type f -name "transaction.log"| tar --create --files-from ->/foo/Stats_transaction_Object.tar.gz

最佳答案

带有 {} 的还不错,但它会为每个文件运行一个单独的 tar 进程。这是一个单独的 tar 进程,因此速度要快得多:

find /where/ever -name transaction.log -print | tar --create --files-from - > /somewhere/else/foo.tar

关于Linux:从多个目录复制一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12149554/

相关文章:

python - 将输入与文件进行比较并注意顺序

Linux shell命令读取文本文件并打开其中列出的文件

python - 如何从 txt 文件中读取路径并将这些文件复制到新目录?

Android导出没有root权限的联系人数据库

bash - 如何使用 Putty 解压当前目录中的所有 tar 文件

linux - 为什么我不能 cd 到/var/lib/mysql

linux - 如何在Linux shell中查找几种类型的文件?

java - 奇怪的数组复制错误

python - 将数据直接写入 tar 存档

linux - 变量作为 SunOs 5.10 中的 Tar 文件名