次のようにして、/ etc/Apache/sites-enabledフォルダーから/ etc/Apache/sites-availableフォルダーに多数のファイル(シンボリックリンクではない)を移動しようとしています。
/etc/Apache2/sites-enabled$ find . -maxdepth 1 -type f | xargs mv {} ../sites-available/
しかし、私はubuntu n00bであり、このエラーが発生しています:
mv: target `./real-file' is not a directory
ここで、「real-file」は開発環境で設定したテストファイルです。私は本番サーバーで他の誰かの混乱を片付けようとしています;-)
find
コマンドで-exec
オプションを試すことができますが、
/etc/Apache2/sites-enabled$ Sudo find . -maxdepth 1 -type f -exec mv {} /etc/Apache2/sites-available \;
ルートが所有するファイルを移動するには、Sudo
権限が必要です。
xargs
コマンドを使用する場合は、-I
オプションを追加します。
find . -maxdepth 1 -type f | Sudo xargs -I {} mv {} /etc/Apache2/sites-available/
理想的には、findで-print0を使用する必要があります。そのため、スペースを含むファイル名で問題が発生することはありません。
例えば。これは動作するはずです:
find . -whatever-flags-go-here -print0 | xargs -r0 mv -t target-directory