あるディレクトリから別のディレクトリにファイルをコピーし、それらに.bak拡張子を追加するスクリプトを作成しようとしています。拡張機能を追加する方法を理解するのに苦労しています。
foreach file in ($argv[1]/*)
cp $file $argv[2]
end
あるディレクトリから別のディレクトリにファイルをコピーし、それらに.bak拡張子を追加するスクリプトを作成しようとしています。拡張機能を追加する方法を理解するのに苦労しています。
foreach file in ($argv[1]/*)
cp $file $argv[2]
end
一連の仮定を立てると(主に、スクリプトのアウトラインが有効なCシェル構文であり、ファイル名のスペースが問題にならないこと)、おそらく次のbasename
コマンドを使用する必要があります。
foreach file in ($argv[1]/*)
cp $file $argv[2]/`basename $file`.bak
end
このbasename
コマンドはパス名を削除するため、ファイルは。で指定されたディレクトリに正確にコピーされ$argv[2]
ます。ディレクトリ階層も保持したい場合は、かなりハードに作業する必要があります。
$1と$2は、スクリプトの引数(ディレクトリ)です-:
for f in $1/*
do
fname=$(basename $f)
cp $f $2/$fname.bak
done