find コマンドでリストされたファイルをコピーし、パスを使用して名前を変更します。

find コマンドでリストされたファイルをコピーし、パスを使用して名前を変更します。

特定の拡張子を持つファイルを作成して特定のフォルダにコピーしていますが、findほとんどのファイルが同じ名前で上書きされます。 Linuxコマンドを使用してファイルパスを取得して名前ファイルに置き換える方法は?

今、私は次のコマンドを使用しています。

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

したがって、次のように特定のパスに2つのファイルがある場合:

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

このコマンドを使用すると、AllCssFilesフォルダに次の内容が表示されます。

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

答え1

1-execdirコマンドを使用できます。rename

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

関連情報