特定の拡張子を持つすべてのファイルの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
-execdir
とコマンドrename
を使用できます1。
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これはPerl-rename
の構文であり、Debianベースのシステムではrename
と呼ばれ、一部ではprename
、その他ではPerl-rename
と呼ばれます。