より多くのユーザーのtmp
ホームディレクトリにディレクトリがあるとします。tmp
すべてのユーザーのホームディレクトリにあるすべてのディレクトリの名前を変更したいと思います。最も簡単な方法は何ですか?
このような:
sudo mv /home/*/tmp /home/*/temp
いいえ。
このような:
for dir in /home/*; do
if [ -d $dir/tmp ]; then
mv $dir/tmp $dir/temp
fi
done
あまりにも多いようです。
ベストアンサー1
Perl は、rename(1)
ほとんどの Linux システムにインストールされたコマンドとともに提供されます。 Debian ベースのシステムでは、/usr/bin
この場合は次のように使用できます。
$ rename 's/tmp$/temp/' /home/*/tmp
最初のパラメータは、新しい名前の後続のパラメータを生成するために使用されるPerl式です。その後、その式の結果に応じてそれぞれの名前が変更されます。
ホームディレクトリにすでに名前が付けられているファイル/ディレクトリがある場合は、temp
そのディレクトリにのみエラーが発生して続行しrename
ます。
/home/c/tmp not renamed: /home/c/temp already exists
まず、そのフラグを使用して実行して、-n
実際に実行せずに名前変更が実行する操作を確認し、すべてが正しく表示されていることを確認できます。それからそれを置き、-n
私の役割を果たしてください。