复制 find 命令列出的文件并使用路径重命名

复制 find 命令列出的文件并使用路径重命名

我正在制作find具有特定扩展名的所有文件,然后将它们复制到特定文件夹,但大多数文件都被覆盖,因为它们具有相同的名称。如何使用 Linux 命令获取文件的路径并将其替换为名称文件?

现在我正在使用这个命令:

find . -name "*.css" | xargs cp -t /folder/AllCssFiles/

所以如果我在某个路径上有两个文件,如下所示:

/something/abc/file.css
/anyting/xyz/file.css

当我使用该命令时,我应该在 AllCssFiles 文件夹中得到类似的内容:

  /something/abc/file.css   (name of the file)
  /anyting/xyz/file.css

答案1

您可以使用-execdir命令rename1

find ./ -type f -name "*.css" -execdir rename -v "s/search/replace/" {} \;

如果您不确定,您可以rename使用-n

  -n, -nono
           No action: print names of files to be renamed, but don't rename.

1这是 在基于 Debian 的系统(在某些系统和其他系统中)上调用的语法。perl-renamerenameprenameperl-rename

相关内容