Raspberry-Pi
rm 萬用字元不適用於 Raspberry Pi 作業系統
我有以下目錄列表:
0 -rw-r--r-- 1 root root 0 Sep 2 15:19 aws.greengrass.LambdaLauncher.log 0 -rw-r--r-- 1 root root 0 Sep 2 15:19 aws.greengrass.LambdaRuntimes.log 0 -rw-r--r-- 1 root root 0 Sep 2 14:53 aws.greengrass.Nucleus.log 80 -rw-r--r-- 1 root root 75017 Sep 2 15:55 greengrass_2022_09_02_15_0.log 40 -rw-r--r-- 1 root root 36930 Sep 2 16:50 greengrass_2022_09_02_16_0.log 216 -rw-r--r-- 1 root root 217065 Sep 2 20:40 greengrass_2022_09_02_20_0.log 96 -rw-r--r-- 1 root root 92764 Sep 2 21:54 greengrass_2022_09_02_21_0.log 64 -rw-r--r-- 1 root root 58307 Sep 2 22:57 greengrass_2022_09_02_22_0.log 48 -rw-r--r-- 1 root root 46475 Sep 6 14:37 greengrass_2022_09_06_14_0.log 16 -rw-r--r-- 1 root root 14845 Sep 6 17:57 greengrass_2022_09_06_17_0.log 40 -rw-r--r-- 1 root root 39037 Sep 6 18:11 greengrass_2022_09_06_18_0.log 184 -rw-r--r-- 1 root root 186318 Sep 6 19:48 greengrass_2022_09_06_19_0.log 12 -rw-r--r-- 1 root root 10793 Sep 6 20:25 greengrass_2022_09_06_20_0.log 124 -rw-r--r-- 1 root root 122363 Sep 6 21:43 greengrass.log
我想刪除任何名稱以 greengrass 開頭的文件。我已經嘗試過這些萬用字元命令,但它們都不起作用:
sudo rm /greengrass/v2/logs/greengrass*.* sudo rm /greengrass/v2/logs/greengrass* sudo rm /greengrass/v2/logs/greengrass*.log
我得到:
rm: cannot remove '/greengrass/v2/logs/greengrass*.*': No such file or directory
正在發生的一切都是關於全球擴張的。
當你執行時:
sudo rm dir/*
執行 sudo 的 shell 會嘗試擴展“*”萬用字元。如果它無法讀取目錄,則將萬用字元按原樣傳遞給 sudo。
sudo 執行
rm
與dir/*
rm 不做全域擴展,只有 shell 做。rm 正在尋找一個名為的文件,該文件*
是一個合法(但不尋常的)文件名。如果執行 sudo 的使用者可以讀取該目錄,那麼 acutall sudo 命令將是:
sudo rm dir/filea dir/fileb dir/filec
這會奏效的。由於您希望 root 進行全域擴展,因此您需要使用 shell,如下所示
sudo sh -c "rm dir/*"
然後 sudo 將以 root 身份執行一個 shell,它將執行命令“rm dir/*”,因為 shell 了解如何擴展 glob,然後它將變成“rm dir/filea dir/fileb …”