web-dev-qa-db-ja.com

複数の* .txtファイルを複数のディレクトリから同じディレクトリにコピーしたいが、新しいファイルの名前を変更したい

数百のディレクトリ内に少なくとも2〜3個の* .txtファイルがあります。必要なものは次のとおりです。1。すべてのディレクトリから同じディレクトリに* .txtをコピーしますが、ファイル名の名前を* _name.txtに変更します(*は.txtの元の名前であり、文字列「name」はすべて同じです)新しくコピーされたファイル。これにpaxを使用できますか?はいの場合、どのように使用しますか?

1
Sameer

これはpaxを使用しませんが、必要なことを実行するための非常に簡単な方法です。

IFS="\n"
for file in *.txt; do
    cp -- "$file" "${file%.txt}_name.txt"
done

構成${var%suffix}は、$varの値の末尾からsuffixを取り除きます。これは、ファイル拡張子を削除するために使用されます。

2
DopeGhoti