この中から「コピー」が含まれるファイルだけ削除したかった

1
2
3
4
5
6
7
8
9
10
11
$ ls -l
合計 0
-rw-r--r-- 1 user user 0 5月 15 09:26 aaa.txt
-rw-r--r-- 1 user user 0 5月 15 09:26 bbb.txt
-rw-r--r-- 1 user user 0 5月 15 09:26 ccc.txt
-rw-r--r-- 1 user user 0 5月 15 09:26 新しいテキスト ドキュメント - コピー (2).txt
-rw-r--r-- 1 user user 0 5月 15 09:26 新しいテキスト ドキュメント - コピー (3).txt
-rw-r--r-- 1 user user 0 5月 15 09:26 新しいテキスト ドキュメント - コピー (4).txt
-rw-r--r-- 1 user user 0 5月 15 09:26 新しいテキスト ドキュメント - コピー (5).txt
-rw-r--r-- 1 user user 0 5月 15 09:26 新しいテキスト ドキュメント - コピー.txt
-rw-r--r-- 1 user user 0 5月 15 09:26 新しいテキスト ドキュメント.txt

ls

1
2
3
4
5
6
7
// 「コピー」が含まれるファイル名のみ抜き出す
$ ls -F | grep コピー
新しいテキスト ドキュメント - コピー (2).txt
新しいテキスト ドキュメント - コピー (3).txt
新しいテキスト ドキュメント - コピー (4).txt
新しいテキスト ドキュメント - コピー (5).txt
新しいテキスト ドキュメント - コピー.txt

xargs

そのままやると、半角スペースが区切り文字扱いになってうまくいかない

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ ls -F | grep コピー | xargs rm
rm: `新しいテキスト' を削除できません: そのようなファイルやディレクトリはありません
rm: `ドキュメント' を削除できません: そのようなファイルやディレクトリはありません
rm: `-' を削除できません: そのようなファイルやディレクトリはありません
rm: `コピー' を削除できません: そのようなファイルやディレクトリはありません
rm: `(2).txt' を削除できません: そのようなファイルやディレクトリはありません
rm: `新しいテキスト' を削除できません: そのようなファイルやディレクトリはありません
rm: `ドキュメント' を削除できません: そのようなファイルやディレクトリはありません
rm: `-' を削除できません: そのようなファイルやディレクトリはありません
rm: `コピー' を削除できません: そのようなファイルやディレクトリはありません
rm: `(3).txt' を削除できません: そのようなファイルやディレクトリはありません
rm: `新しいテキスト' を削除できません: そのようなファイルやディレクトリはありません
rm: `ドキュメント' を削除できません: そのようなファイルやディレクトリはありません
rm: `-' を削除できません: そのようなファイルやディレクトリはありません
rm: `コピー' を削除できません: そのようなファイルやディレクトリはありません
rm: `(4).txt' を削除できません: そのようなファイルやディレクトリはありません
rm: `新しいテキスト' を削除できません: そのようなファイルやディレクトリはありません
rm: `ドキュメント' を削除できません: そのようなファイルやディレクトリはありません
rm: `-' を削除できません: そのようなファイルやディレクトリはありません
rm: `コピー' を削除できません: そのようなファイルやディレクトリはありません
rm: `(5).txt' を削除できません: そのようなファイルやディレクトリはありません
rm: `新しいテキスト' を削除できません: そのようなファイルやディレクトリはありません
rm: `ドキュメント' を削除できません: そのようなファイルやディレクトリはありません
rm: `-' を削除できません: そのようなファイルやディレクトリはありません
rm: `コピー.txt' を削除できません: そのようなファイルやディレクトリはありません

-iオプションをつけて、ダブルクォートで囲ってやる

1
2
3
4
5
6
7
8
$ ls -F | grep コピー | xargs -i rm "{}"

$ ls -l
合計 0
-rw-r--r-- 1 user user 0 5月 15 09:26 aaa.txt
-rw-r--r-- 1 user user 0 5月 15 09:26 bbb.txt
-rw-r--r-- 1 user user 0 5月 15 09:26 ccc.txt
-rw-r--r-- 1 user user 0 5月 15 09:26 新しいテキスト ドキュメント.txt