cpコマンドを使用して、誤って100個のファイルをコピーしました。
$ cp file1 "/data/ file1"
$ cp file2 "/data/ file2"
注:- / dataとfile2、file1の間にスペースがあります。
/ dataディレクトリにファイルを表示できますが、コピーまたは移動することはできません。これらのファイルへのアクセス/コピー/移動中にファイルが見つかりませんエラーが発生します。
$ cd /data/ ; ls
file1
file2
$ cp file1 /data1/
can not stat file1
問題を解決する方法。
答え1
使用できるワイルドカード問題に一致するファイルを選択してください。例:
for f in ./*file?
do
echo "[$f]"
done
答え2
スペースは問題なので、ファイル参照でスペースをエスケープする必要があります。すべてのファイルを一度に回復するには(シェルによって異なります - 少なくともBashで動作します):
for FILE in /data1/" "* ; do mv "${FILE}" "${FILE# }" ; done
答え3
cp
スペースはファイル名の一部であるため、またはを使用するときはファイル名にスペースを含める必要がありますmv
。
mv " file1" /data1/
または、そのスペースを取り除く方が良いです。
mv " file1" /data1/file1
すべてのファイルに対してこれを一度に実行するには、Perlの名前変更ツールを使用します。複数の名前変更ツール)
prename -n 's#^ #/data1/#' " file"*
(-n
結果が満足であれば削除してください)