Göre ls man sayfasında , sen gerekir -O
kombine opsiyon -l
ls ile bayraklar görüntülenmesi seçeneğiyle. Örneğin:
ls -Ol foo.txt
-rw-r--r-- 1 harry staff - 0 18 Aug 19:11 foo.txt
chflags hidden foo.txt
ls -Ol foo.txt
-rw-r--r-- 1 harry staff hidden 0 18 Aug 19:11 foo.txt
chflags nohidden foo.txt
ls -Ol foo.txt
-rw-r--r-- 1 harry staff - 0 18 Aug 19:11 foo.txt
Düzenleme: Sadece OP ne istediğine daha spesifik bir çözüm vermek için (aşağıdaki açıklamalara bakın): Bir klasörün gizli olup olmadığını -a
görmek için, klasörün kendisini görüntülemek için ls seçeneğini geçebiliriz . Daha sonra bu çıkışın gerekli hattını elde etmek için çıkışı boruya bağlayabilirizsed -n 2p
(teşekkürler Stack Overflow ). Bir örnek:
mkdir foo
chflags hidden foo
ls -aOl foo | sed -n 2p
drwxr-xr-x@ 2 harry staff hidden 68 18 Aug 19:11 .
Düzenleme 2: Bir dosya ya da klasör olsun, çalışması gereken bir komut için, biraz daha hacky bir şey yapmamız gerekir.
Gerekli çıktı satırı, ls -al
klasörler toplam sayıyı gösterirken, dosyalar göstermediğinden, öğenin dosya veya klasör olmasına bağlı olarak değişir. Bunu aşmak için, karakter için grep olabilir r
. Bu, tüm dosyalarda / klasörlerde olmalıdır (neredeyse hepsinde en az bir okuma izni olmalıdır), ancak toplamlar satırında olmamalıdır.
head -n 1
Almak istediğimiz çizgi ilk çizgi olduğunda, ilk çizgiyi almak için kullanabiliriz (sed'i tercih ederseniz, alternatif sed -n 1p
kullanılabilir).
Yani, örneğin bir dizinle:
mkdir foo
chflags hidden foo
ls -aOl foo | grep r | head -n 1
drwxr-xr-x@ 2 harry staff hidden 68 18 Aug 19:11 .
ve bir dosya ile:
touch foo.txt
chflags hidden foo.txt
ls -aOl foo.txt | grep r | head -n 1
-rw-r--r-- 1 harry staff hidden 0 18 Aug 19:11 foo.txt
Edit 3: Selamlamaktan daha güzel bir yol için aşağıdaki Tyilo'nun cevabına bakın r
:)