使用相对路径查找并复制文件

Bri*_*ian 3 linux copy find

在这个Stackoverflow 问题中,它展示了如何复制文件,并且它将递归到子目录中来复制文件。如何复制文件并在副本中包含相对路径?

例如,

find /path/to/directory/or/just/dot -name '*somepartoffilename*' -exec cp {} /path/you/want/to/copy/to \;

因此,如果您有/path/to/directory/a/somepartoffilename.txt/path/to/directory/b/somepartoffilename.txt,那么您最终只会在 中得到这些文件之一/path/you/want/to/copy/to

Gra*_*sus 5

干得好:

\n\n
$ tree\n.   \n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 a\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 foo\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 b\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 foo\n\n2 directories, 2 files\n$ find . -type f -exec bash -c 'path={}; d=/tmp/dest/$(dirname $path); mkdir -p $d ; cp $path $d' \\;\n$ tree /tmp/dest/\n/tmp/dest/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 a\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 foo\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 b\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 foo\n\n2 directories, 2 files\n
Run Code Online (Sandbox Code Playgroud)\n

  • 酷,我认为您还可以通过对“cp”命令执行“--parents”来节省“mkdir” (2认同)