GNU/Linux >> Znalost Linux >  >> Linux

Linux – poškozené adresáře, problém s jejich mazáním?

V mém linuxovém systému je adresář kvůli nějaké poruše softwaru, vytvořily se některé adresáře s nevyžádanými názvy, jak můžete vidět níže, mám problém s jejich mazáním,

$ ll
total 1532
drwxr-xr-x   2 sensage sensage   4096 Apr 19 16:56 -?$??
drwxrwxr-x 248 sensage sensage   4096 Apr 23 11:37 .
drwxrwxr-x  99 sensage sensage   4096 Apr 16 14:23 ..
drwxr-xr-x   2 sensage sensage   4096 Apr  6 14:54 }???;?
drwxr-xr-x   2 sensage sensage   4096 Apr 19 03:01 }??=?|
-rw-r--r--   1 sensage sensage     88 Apr 22 13:37 $
drwxr-xr-x   2 sensage sensage   4096 Apr  2 12:43 ?
drwxr-xr-x   2 sensage sensage   4096 Mar 20 02:51 ?=??&?
drwxr-xr-x   2 sensage sensage   4096 Apr 11 08:40 ?;%??;
drwxr-xr-x   2 sensage sensage   4096 Apr 14 09:38 ?:????
drwxr-xr-x   2 sensage sensage   4096 Mar 22 17:21 ?(?>~?
drwxr-xr-x   2 sensage sensage   4096 Apr  1 13:45 ?[???%
drwxr-xr-x   2 sensage sensage   4096 Apr  3 14:03 [email protected]????
drwxr-xr-x   2 sensage sensage   4096 Apr 12 16:18 ??
drwxr-xr-x   2 sensage sensage   4096 Apr 17 16:38 ??&???
drwxr-xr-x   2 sensage sensage   4096 Mar 25 02:43 ??+???
drwxr-xr-x   2 sensage sensage   4096 Apr 19 00:46 Ü¡?,??
drwxr-xr-x   2 sensage sensage   4096 Mar 28 18:54 ÚŸ??"?
drwxr-xr-x   2 sensage sensage   4096 Mar 27 01:04 ???(?
drwxr-xr-x   2 sensage sensage   4096 Apr 19 22:41 ??ͨ?`
drwxr-xr-x   2 sensage sensage   4096 Apr 15 11:44 ?????-

jak vidíte názvy adresářů modře. když je chci smazat, zobrazí se níže chyba:

$ ls -1  | grep -v 20 | xargs rm -rf 
xargs: unmatched double quote; by default quotes are special to xargs unless you use the -0 option
rm: invalid option -- ¼
Try `rm ./'-¼$Þ¸Í'' to remove the file `-274$336270315'.
Try `rm --help' for more information.

co s nimi mám dělat?

Přijatá odpověď:

ls vypíše jiné než ASCII znaky (nebo spíše znaky, které nejsou v aktuálním národním prostředí podporovány) jako ? . To je jeden z důvodů, proč analyzovat výstup ls je špatná věc. Výstup z ls je určen k prohlížení . V některých případech, jako je tento, to nejsou skutečná jména, která existují v souborovém systému.

Zkuste místo toho něco jako (tyto smažou vše soubory a adresáře, včetně /path/to/dir )

rm -rf /path/to/dir

nebo

find /path/to/dir -delete

nebo

find /path/to/dir -exec rm -rf {} +

nebo

find /path/to/dir -print0 | xargs -0 rm -rf

Upravte podle svých potřeb. Chcete-li smazat pouze soubory, přidejte -type f za cestou v find příklady, například.

Stačí rm -rf * v tomto adresáři (to je důležité , aktuální pracovní adresář musí být adresář, jehož soubory a adresáře chcete smazat).

Související:Jak v aplikaci Microsoft Access odstraníte všechny hodnoty v jednom sloupci, aniž byste smazali celé pole?
Linux
  1. 8 tipů, které pomohou netechnářům přejít na Linux

  2. Vytváření, mazání a správa adresářů v systému Linux

  3. Kopírování souborů a adresářů v Linuxu

  1. 5 Linuxových příkazů, které začnu používat

  2. Linux Odstraňte soubory a adresáře

  3. Odstranění .rbenv z Linuxu

  1. Jak přejmenovat adresář v Linuxu

  2. Linux – standardní a/nebo společné adresáře na operačních systémech Unix/linux?

  3. Přejděte do několika adresářů v linuxu