나는 당신이 설정하거나 수행하여 폴더 / 파일의 숨겨진 플래그 설정을 해제 할 수 있습니다 알고 chflags hidden foo.txt
및 chflags nohidden foo.txt
.
그러나 폴더 / 파일이 현재 숨겨져 있는지 여부를 알려주는 방법이 있습니까?
폴더 / 파일이 점으로 시작하는지 확인하고 싶지 않습니다.
답변
ls 매뉴얼 페이지 에 따르면 ls로 플래그를 보는 옵션 -O
과 옵션을 결합 할 수 있어야합니다 -l
. 예를 들면 다음과 같습니다.
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
편집 : OP가 원하는 것에 대해보다 구체적인 솔루션을 제공하기 위해 (아래 주석 참조) : 폴더가 숨겨져 있는지 여부 -a
를 확인하려면 폴더 자체를 볼 수있는 옵션을 ls에 전달할 수 있습니다 . 그런 다음 출력을 sed -n 2p
( 스택 오버플 로 감사)에 파이프하여 해당 출력 의 필수 라인을 얻을 수 있습니다. 예를 들면 :
mkdir foo
chflags hidden foo
ls -aOl foo | sed -n 2p
drwxr-xr-x@ 2 harry staff hidden 68 18 Aug 19:11 .
편집 2 : 파일인지 폴더인지에 관계없이 작동 해야하는 명령의 경우 약간 더 해킹해야합니다.
ls -al
폴더는 총 수를 표시하지만 파일은 그렇지 않으므로 필요한 출력 라인은 파일이 폴더인지 파일에 따라 달라집니다. 이 문제를 해결하기 위해 캐릭터를 grep 할 수 있습니다 r
. 이 파일은 ~ 모든 파일 / 폴더에 있어야하며 (거의 모든 파일에는 최소한 하나의 읽기 권한이 있어야 함) totals 행에는 없습니다.
우리가 얻고 자하는 행이 첫 번째 행이되므로 첫 번째 행 head -n 1
을 얻는 sed -n 1p
데 사용할 수 있습니다 ( sed를 선호하는 경우 다른 방법을 사용할 수 있음).
따라서 예를 들어 디렉토리를 사용하십시오.
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 .
그리고 파일과 함께 :
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
편집 3 : Grepping보다 더 좋은 방법은 아래 Tyilo의 답변을 참조하십시오 r
🙂
답변
여기에서 해결책을 찾았습니다. ls가 하위 파일이나 폴더 내용에 대한 정보가 아닌 지정된 디렉토리에 대한 정보 만 표시하도록하려면 어떻게해야합니까?
기본적으로 정보가 표시되도록 ls -ldO foo
추가 | awk '{ print $5 }'
하십시오.
답변
에서 참조로 @Tyilo , @Sorpigal는 시도 제안 stat
인코딩와 “사용자 플래그”이는 %Xf
(그가 가 x 사용자 코드 F 지연), 및 기계 파싱 훨씬 안전합니다.
$ stat -f "%Xf" ~/Library
8000
사용자 플래그의 16 진수 값은 여기에 있습니다 grep UF /usr/include/sys/stat.h
. macOS 10.11 기준 :
#define UF_SETTABLE 0x0000ffff /* mask of owner changeable flags */
#define UF_NODUMP 0x00000001 /* do not dump file */
#define UF_IMMUTABLE 0x00000002 /* file may not be changed */
#define UF_APPEND 0x00000004 /* writes to file may only append */
#define UF_OPAQUE 0x00000008 /* directory is opaque wrt. union */
/* #define UF_NOUNLINK 0x00000010 */ /* file may not be removed or renamed */
#define UF_COMPRESSED 0x00000020 /* file is hfs-compressed */
/* UF_TRACKED is used for dealing with document IDs. We no longer issue
notifications for deletes or renames for files which have UF_TRACKED set. */
#define UF_TRACKED 0x00000040
#define UF_HIDDEN 0x00008000 /* hint that this item should not be */