GNU/Linux >> Znalost Linux >  >> Linux

Příkaz pro výpis všech souborů kromě . (tečka) a .. (tečka tečka)

Pokud jde o dokumentaci ls(1) (man ls ):

-A, --almost-all neuvádí implicitní . a ..

potřebujete (bez jakýkoli další argument, například .* ):

ls -A

nebo ještě lépe:

/bin/ls -A

Mám situaci, kdy chci odstranit řadu tečkových adresářů. Na mých serverech označujeme adresáře pro odstranění přidáním tečky a určitých dalších textových vzorů (časové razítko) pro automatické odstranění. Někdy to musím udělat ručně.

Jak jsem poznamenal k odpovědi Basilea Starynkevitche, když použijete kulový vzor, ​​jako je ten pod přepínačem -A, ztratí svou funkci a funguje stejně jako -a:

 [email protected]:~/scripts$ ls -1dA .*
.
..
.comparepp.sh.swp

Pokud se jako uživatel pokusím odstranit soubory, zcela jistě by došlo k chybě, ale nechci přemýšlet o tom, co by se mohlo stát jako root (!)

Můj přístup v tomto případě je:

for dir in $(ls -1ad .* | tail -n +3) ; do rm -rfv $dir  ; done

Vymezuji první 2 řádek obsahující tečky, jak můžete vidět. Chcete-li přizpůsobit odpověď na položenou otázku, stačí:

ls -d1A .* | tail -n +3

$ ls -lA

nejlépe vyhovuje mým potřebám.

Pro usnadnění doporučuji definovat alias v souboru .bashrc následovně:

alias ll='ls -lA'

Linux
  1. Linux ls Command - Seznam souborů

  2. Přesuňte všechny soubory kromě jednoho

  3. linuxový příkaz k vyprázdnění všech souborů v adresáři

  1. Zobrazení seznamu všech úloh „at“ a jejich příslušných příkazů

  2. Jak zobrazit seznam všech souborů ve sdílené síťové složce Windows SMB

  3. Existuje příkaz UNIX pro seznam všech nedávno odstraněných souborů ze systému

  1. Procházet složku a vypisovat soubory?

  2. Použijte Najít k nalezení určitého adresáře a odstranění všech souborů v něm kromě jednoho adresáře?

  3. nm :Příkaz pro výpis symbolů v objektových souborech.