Bashスクリプト(Arch Linux)には、次のrsyncコマンドがあります。
rsync –nvaAHX --inplace --delete-delay --exclude-from="/etc/$path1/exclude-list-$configName.txt" "$new_snap/" "$BACKUPDIR"
次のエラーにより、rsync コマンドが失敗します。
rsync: --delete does not work without --recursive (-r) or --dirs (-d).
もちろん、「a」が「r」を意味するので、このメッセージには誤解があります。
rsyncコマンドから "--delete-delay"オプションを削除すると、次のような他のエラーが発生します。
rsync: link_stat "/some/path/–aAHX" failed: No such file or directory (2)
「/some/path」に表示される値は現在の作業ディレクトリです。現在のディレクトリを変更すると、エラーメッセージの値も変更されます。ただし、「-aAHX」オプションがパスの一部に追加される理由は混乱しています。
コンピュータは完全に更新されたArch Linuxシステムです。私もちょうど再起動しました。
4.13.11-1-ARCH #1 SMP PREEMPT Thu Nov 2 10:25:56 CET 2017 x86_64 GNU/Linux
rsyncプログラムの場所:
# which rsync
/usr/bin/rsync
テストスクリプトは次のとおりです。
#!/bin/bash
path1=xyz
configName=root
new_snap=/.snapshots/1/snapshot
BACKUPDIR=/backup/$configName
echo "showing exclude file contents:"
cat "/etc/$path1/exclude-list-$configName.txt"
echo
echo rsync –nvaAHX --inplace --delete-delay --exclude-from="/etc/$path1/exclude-list-$configName.txt" "$new_snap/" "$BACKUPDIR"
rsync –nvaAHX --inplace --delete-delay --exclude-from="/etc/$path1/exclude-list-$configName.txt" "$new_snap/" "$BACKUPDIR"
以下は、「/etc/$path/exclude-list-$configName.txt」ファイルの内容です。
"dev/*"
"proc/*"
"sys/*"
"tmp/*"
"run/*"
"mnt/*"
"media/*"
"lost+found"
".trash*/*"
".Trash*/*"
以下は、スクリプトがまったくないいくつかのテストです。私はこれが非常に混乱していると思います。
# mkdir adir
# mkdir bdir
# touch adir/afile1
# touch adir/afile2
# ls -la adir/
total 0
drwxr-x--x 1 root root 24 Nov 12 02:21 .
drwxr-xr-x 1 user user 2080 Nov 12 02:28 ..
-rw-r----- 1 root root 0 Nov 12 02:21 afile1
-rw-r----- 1 root root 0 Nov 12 02:21 afile2
# ls -la bdir/
total 0
drwxr-x--x 1 root root 0 Nov 12 02:21 .
drwxr-xr-x 1 user user 2080 Nov 12 02:28 ..
# rsync -nva adir/ bdir
sending incremental file list
./
afile1
afile2
sent 93 bytes received 25 bytes 236.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)
# rsync -nva /home/user/adir/ /home/user/bdir
sending incremental file list
./
afile1
afile2
sent 93 bytes received 25 bytes 236.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)
# rsync –nvaAHX --inplace --delete-delay --exclude-from=/root/exclude-list-root.txt /home/user/adir/ /home/user/bdir/
rsync: --delete does not work without --recursive (-r) or --dirs (-d).
rsync error: syntax or usage error (code 1) at main.c(1567) [client=3.1.2]
# rsync –nvaAHX --inplace --delete-delay /home/user/adir/ /home/user/bdir/
rsync: --delete does not work without --recursive (-r) or --dirs (-d).
rsync error: syntax or usage error (code 1) at main.c(1567) [client=3.1.2]
# rsync –nvaAHX --inplace /home/user/adir/ /home/user/bdir/
rsync: link_stat "/home/user/–nvaAHX" failed: No such file or directory (2)
skipping directory .
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
# rsync –nvaAHX /home/user/adir/ /home/user/bdir/
rsync: link_stat "/home/user/–nvaAHX" failed: No such file or directory (2)
skipping directory .
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
# rsync –nva /home/user/adir/ /home/user/bdir/
rsync: link_stat "/home/user/–nva" failed: No such file or directory (2)
skipping directory .
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
ベストアンサー1
n
in 前のダッシュは–nvaHAX
一般的なダッシュではなく、やや長い em ダッシュ(またはハイフン)です。
「スマート」エディタまたはワードプロセッシングプログラムからコピーして貼り付けて、特定の文字を対応する印刷文字に置き換えると、これが発生する可能性があります。
私のシステムでコマンドの最初の部分をコピーして貼り付けると、次のような結果が表示されます。
$ rsync –nva adir/ bdir/
rsync: link_stat "/tmp_mfs/shell-ksh.D1Mq1Xht/\#342\#200\#223nva" failed: No such file or directory (2)
skipping directory .
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
ご覧のとおり、私の端末にはユーザーの端末とは少し異なるエラーメッセージが表示され、ダッシュが実際にUnicode文字(または同様の文字エンコードについてはわかりません)であることを示しています。