web-dev-qa-db-ja.com

ワイルドカードを使用する場合、rsync「そのようなファイルまたはディレクトリはありません」

rsyncを使用して、フォルダーの内容を別のフォルダーにコピーしようとしています。これは私がこれに使用しているコマンドです。

rsync -v -r $folder64/Pictures/* $folder65/Pictures/

そして、これがエラーコードです。

building file list ... rsync: link_stat "/Volumes/HD/Users/jol/Pictures/*" failed: No such file or directory (2)
done

私はこれをたくさんのフォルダで取得しますが、そこにはアイテムが含まれています。たとえば、デスクトップで何かを作成するだけの場合などです。

3
DisplayName

rsyncを使用してフォルダを別のフォルダにコピーするには、次のようにします。

rsync -a /source/folder/path/ /destination/folder/path/

あなたの場合、

rsync -a "$folder64/Pictures/" "$folder65/Pictures/"

重要なのは、ソースの末尾の/です。

$folder64/Pictures/*を使用する場合、コマンドライン引数が*ファイル名グロブパターンに一致するソースフォルダー内のアイテムのリストに展開されるため、単一フォルダーの内容をコピーしない可能性があります。これは通常、隠しファイルやフォルダとは一致しません。

特定のケースでは、「そのようなファイルまたはディレクトリはありません」というエラーメッセージが表示されます。これは、ソースとして指定したディレクトリが単に存在しないか、空であることを意味します。空の場合、これにより*は展開されないままになり、rsyncは同期する指定のファイル(*と呼ばれる)を見つけることができません。

2
Kusalananda

rsyncを含むnoglobのエイリアスを使用していますか?一部のShell構成フレームワークはそれを設定します(例:prezto for zsh)。私は同じ行動を経験しました、あなたはどちらかをすることができます:

  1. エイリアスの設定を解除します(unalias rsync
  2. フルパスを入力します(/usr/bin/rsync [etc.]、おそらく)
  3. またはcommand rsync [etc.]を使用します

それを回避する。

0
dlukes