Linux-파일을 나열하는 명령 (ls 제외)


27

시스템에서 작업 중이고 누군가 실수로 ls명령을 삭제했다고 상상해보십시오 ( /bin/ls). 현재 디렉토리에있는 파일 목록을 어떻게 얻을 수 있습니까? 시도 해봐.

나는 많은 방법을 시도하고 인터넷에서도 검색했지만 아무것도 찾지 못했습니다. ls명령 옆에 모든 파일을 나열하는 데 사용할 수 있는 명령 을 묻고 싶습니다 .

답변:


35
echo *

... Bourne 호환 쉘에서 파일 글 로빙을 통해 현재 폴더의 파일을 표시합니다.

모든 파일이 한 레벨 아래로 나열됩니다.

echo */*

Bash에서 globstar가 설정되면 (로 설정 shopt -s globstar,로 설정되지 않음 shopt -u globstar) 모든 파일이 재귀 적으로 나열됩니다.

echo **

10
숙제 운동을 넘어, echo *당신이 실행할 수 있도록 시스템을 망쳐 한 경우, 실제로 유용 어떤 프로그램을 (예를 들어, 당신이 제거 libc.so또는 ld.so),하지만 여전히 실행중인 쉘을 가지고있다.
Gilles 'SO- 악마 중지'

3
bash4 (나는 생각한다)와 zsh에서 echo **/*이것을 재귀 적으로 사용할 수 있습니다 .
리드

@ 리드 : 테스트 해 볼게요. 좋은 발견.
0xC0000022L

잘 지내요, @Gilles. 특정 부팅 조건 및 'cat'및 'ls'기능을 자체적으로 만드는 데 필요한 부팅 스크립트에서 / usr 또는 / bin에 액세스 할 수 없었던 이전 DEC 시스템에서 배웠습니다.
Arcege


23
find -maxdepth 1 
find -maxdepth 1 -ls

적게 TAB TAB

-ls 스위치가 / bin / ls와 독립적이며 자체 형식을 가지며 세부 정보를 표시합니다.

127432    0 drwxr-xr-x   2 stefan   stefan         48 Apr  8 22:51 ./temp/falsch/.hiddenfalsch
127447    0 lrwxrwxrwx   1 stefan   stefan          9 Apr  8 22:51 ./temp/falsch/linkfalsch -> subfalsch
127427    0 drwxr-xr-x   2 stefan   stefan         48 Apr  8 22:51 ./temp/.hiddenmusik

가능성을 보여주는 또 다른 세부 사항은 stat

stat *
  File: `halx0o'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 807h/2055d  Inode: 102701      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/  stefan)   Gid: ( 1000/  stefan)
Access: 2011-04-08 22:38:18.000000000 +0200
Modify: 2009-07-23 03:16:15.000000000 +0200
Change: 2011-04-09 23:29:13.000000000 +0200
  File: `ho ho ho'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 807h/2055d  Inode: 115835      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/  stefan)   Gid: ( 1000/  stefan)
Access: 2011-04-08 22:38:18.000000000 +0200
Modify: 2010-07-24 14:12:48.000000000 +0200
Change: 2011-04-09 23:29:13.000000000 +0200

10

처럼 보이게하려면 lsBash의 for루프를 사용 합니다.

for i in *; do echo $i; done

그래도 작동하지 않으면 Python을 사용해보십시오 ;).

python -c "import glob; print '\n'.join(glob.glob('/home/*'))"

import glob; print '\n'.join(glob.glob('/home/*'))잘 작동합니다.
Arcege


6
find .

필요한 제한 매개 변수를 입력하고 싶을 수도 있습니다.


3

lsattr ./*

getfacl ./* 권한도 표시합니다

grep -l '.*' ./*

awk 'FNR==1 {print FILENAME}' ./* GNU awk와 함께 작동

debugfs /dev/sdX sdX를 ls를 원하는 파티션으로 바꾸면 debugfs 안에서 ls를 할 수 있습니다

debugfs:  cd /
debugfs:  ls -l
      2   40755 (2)      0      0    4096  6-Apr-2011 01:01 .
      2   40755 (2)      0      0    4096  6-Apr-2011 01:01 ..
     11   40700 (2)      0      0   16384  5-Jul-2010 09:59 lost+found
 2392065   40755 (2)      0      0    4096  5-Jul-2010 09:59 boot
 2228225   40755 (2)      0      0    4096  5-Jul-2010 09:59 sys
 1376257   40755 (2)      0      0    4096  5-Jul-2010 09:59 proc
 4915201   40755 (2)      0      0    4096  5-Jul-2010 09:59 dev
 3473409   40755 (2)      0      0   12288 10-Apr-2011 22:05 etc
  98305  100644 (1)      0      0       0  6-Jul-2010 12:05 .autofsck
 3342337   40755 (2)      0      0    4096  5-Apr-2011 15:05 var
 3932161   41777 (2)      0      0    4096 10-Apr-2011 22:11 tmp
  ..........
debugfs:  

lynx ./

mc 자정 사령관이 설치되어 있다고 가정


3

받는 유사 echo버전하지만, 더 읽기 쉽도록 한 줄에 하나의 항목 아웃이 인쇄 :

printf %s\\n ./*

또는

printf '%s\n' ./*

재귀 적으로 (bash 4+의 경우; 다른 쉘은 그것을 설정하기 위해 다른 옵션이 필요하거나 기본적으로 globstar가 활성화되어 있습니다) :

shopt -s globstar
printf %s\\n ./**/*

'/ *'가 필요하지 **않은 경우, globstar설정되어 있으면 단순 이 모든 디렉토리로 재귀됩니다 . 로 변경하십시오 printf '%s' **.


1

emacs의 쉘 모드에서 ls를 사용할 수 없다면, eshell 모드로 전환하거나 그냥 멈출 수 있습니다.


1

bash 쉘 (또는 다른 쉘을 완료 한 경우)을 시작했다면 아마도 '*'를 입력 한 다음 탭하십시오.

또는 일반적으로 X가 시작되었으므로 '노틸러스'만 할 수도 있지만, 그것은 인간을위한 것입니다.

/ usr / bin / lsattr 시도

그러나 현실 세계에서 그러한 일이 발생하면 내가 실제로 할 일은 분명히 다음과 같습니다.

sudo apt-get install --reinstall coreutils

1

bash 또는 비슷한 탭 완성 기능을 가진 쉘에서 실제 명령을 전혀 사용할 필요가 없습니다. wibble두 개의 탭이 있으면 현재 디렉토리의 파일 목록 wibble /bin/이 표시되고 두 개의 탭이 있으면 / bin의 왼쪽 나는이 상황에서 한 번 나 자신을 발견했고 (실제로 다른 것들과 함께 / bin을 완전히 죽였습니다) echo *@STATUS_ACCESS_DENIED가 제안한 접근법을 사용하여 시작 했지만 결국 탭 완성이 더 편리하다는 것을 알았습니다.


0

또 다른 방법으로 tree, 재귀 적 어디서나 간다 언급되지와는 달리 찾기 또는 LS 당신이 오류가없는 (같은 Permission denied, Not a directory당신은 또한 경우에 절대 경로를 가져올 수) 당신에 파일을 먹이고 싶은 xargs또는 다른 명령

tree -fai /pathYouWantToList >listOfFiles.list

옵션 의미 :

-a     All  files  are  printed.  By default tree does not print hidden files (those beginning with a dot
       `.').  In no event does tree print the file system constructs `.'  (current  directory)  and  `..'
       (previous directory).

-i     Makes tree not print the indentation lines, useful when used in conjunction with the -f option.

-f     Prints the full path prefix for each file.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.