1

だから私はいくつかのファイルを取り込んでいて、それらをディレクトリにコピーし、「.copy」などのファイル拡張子を追加して保存したいと考えています。

ファイルの末尾に何かを追加するために使用できるコマンドがよくわかりません。思っているよりも簡単ですか、それともコマンドが必要ですか?

4

2 に答える 2

2

ループを使用してこれを行う予定ですか、それともワンライナーを見つけようとしていますか? ファイルがある場合は、追加されたバージョンに対して$f言うことができます。$f.copy

于 2011-02-10T03:54:42.133 に答える
2
fteadmin@linux-wmq-ams:~/files> ls -1
file1.txt
file2.txt
file3.txt
fteadmin@linux-wmq-ams:~/files> ls -1 | xargs -I{} cp {} {}.copy
fteadmin@linux-wmq-ams:~/files> ls -1
file1.txt
file1.txt.copy
file2.txt
file2.txt.copy
file3.txt
file3.txt.copy

プラットフォームによっては、xargs の構文を少し変更する必要がある場合があります。-i{}私はそれが使用されているのを見てきまし-I{}たが、大文字のバリアントがより一般的であるようです. {}.copyもちろん、ファイル名の前に絶対パス名を指定して、ファイルが別のディレクトリに配置されるようにすることもできます。

ワンライナー以上のことをする必要がある場合は、これもあります:

ls -1 | {
    while read _file; do
        echo Copying $_file to $_file.copy
        cp $_file $_file.copy
    done
}

while ループには何行でも入れることができます。たとえば、同じファイルを多数の異なる宛先ディレクトリまたはサフィックスにコピーできます。貼り付けるだけであれば、スクリプトを作成する必要はありません。結果は次のようになります。

fteadmin@linux-wmq-ams:~/files> ls -1
file1.txt
file2.txt
file3.txt
fteadmin@linux-wmq-ams:~/files> ls -1 | {
>     while read _file; do
>         echo Copying $_file to $_file.copy
>         cp $_file $_file.copy
>     done
> }
Copying file1.txt to file1.txt.copy
Copying file2.txt to file2.txt.copy
Copying file3.txt to file3.txt.copy
fteadmin@linux-wmq-ams:~/files> ls -1
file1.txt
file1.txt.copy
file2.txt
file2.txt.copy
file3.txt
file3.txt.copy
fteadmin@linux-wmq-ams:~/files> 
于 2011-02-10T04:04:13.687 に答える