私はいくつかのファイルを取り込んでいます。それらをディレクトリにコピーして、ファイル拡張子「.copy」を付けて保存したいと思います。Cシェルスクリプト - ファイル名の末尾に追加
私は、ファイルの最後に何かを追加するためにどのコマンドを使用できるかわかりませんが、思っているより簡単ですか、コマンドが必要ですか?
私はいくつかのファイルを取り込んでいます。それらをディレクトリにコピーして、ファイル拡張子「.copy」を付けて保存したいと思います。Cシェルスクリプト - ファイル名の末尾に追加
私は、ファイルの最後に何かを追加するためにどのコマンドを使用できるかわかりませんが、思っているより簡単ですか、コマンドが必要ですか?
ループを使用してこれを行う予定ですか、1ライナーを見つけようとしていますか?ファイルが$f
の場合、追加されたバージョンについては$f.copy
と言うことができます。
[email protected]:~/files> ls -1
file1.txt
file2.txt
file3.txt
[email protected]:~/files> ls -1 | xargs -I{} cp {} {}.copy
[email protected]:~/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ループに任意の数の行を置くことができます。たとえば、同じファイルを12個の異なる宛先ディレクトリまたはサフィックスにコピーすることができます。それを貼り付けるだけであれば、スクリプトを作成する必要はありません。結果は次のようになります。
[email protected]:~/files> ls -1
file1.txt
file2.txt
file3.txt
[email protected]:~/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
[email protected]:~/files> ls -1
file1.txt
file1.txt.copy
file2.txt
file2.txt.copy
file3.txt
file3.txt.copy
[email protected]:~/files>
ループを計画すると、実際にファイルをコピーするにはどのように使用しますか? – muttley91
'cp $ fディレクトリ/ $ f.copy'。しかし、 'xargs'を使って1行バージョンのT.Robの答えを見てください。 –