mv:*で統計できない


10

私は以前これを試しました。以前にこの種のコマンドを発行できたことを私は誓います:

mv /home/user/temp1/* /home/user/temp2

基本的に、私はここからこのコマンドを取得しました:https : //superuser.com/questions/273254/mo​​ve-files-and-folders-recursively-in-linux

なぜそれが私に言っているのか

mv: cannot stat `/home/user/temp1/*': No such file or directory

回答:


6

これが発生する理由として、次の2つが考えられます。

  1. ソースディレクトリが存在しない可能性があります(OR)
  2. ソースディレクトリが空である可能性があります

どちらでもない場合は無視してください!


5

を使用$USERしてユーザー名に展開する必要があります。/home/userという名前のユーザーがいる場合にのみ有効ですuser。これがあれば動作するtemp1temp2自分のホームディレクトリに存在します

mv /home/$USER/temp1/* /home/$USER/temp2

3

混乱を少しでも解消して解消しようと思います。

  • フォルダその内容を別のフォルダに移動する場合は、次のように入力します。

    mv ~/Scripts ~/Podcasts

  • フォルダのコンテンツを移動し、フォルダ自体を別のフォルダに移動しない場合は、たとえばと入力する必要がありますmv ~/Scripts/* ~/Podcasts。入力echo ~/Scripts/*してフォルダの内容を確認できます

  • globstarすべてのディレクトリレベルを再帰的に参照できるようにするについても知る必要がある場合は、この記事この記事を参照してください。shopt-s globstarで有効にできますが、永続的に機能させるには.bashrcに配置する必要があります。)

tilde〜/ Scripts内の〜は/home/mike/、シェルによって、またはユーザー名に自動的に展開されます)


0

bashを使用していて、ソースディレクトリが空の場合は、シェルのデフォルトのglob拡張動作を次のように変更できます。

shopt -s nullglob

nullglobを有効にしてmv、ソースディレクトリが空の場合に後続のコマンドが適切に動作するようにします。これにより、ls予期しない動作などの他のコマンドが発生する可能性があることに注意してください。

nullglobを無効にするには、次のようにします。

shopt -u nullglob

詳細については、こちらこちらをご覧ください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.