web-dev-qa-db-ja.com

Linux-ファイルをリストするコマンド(lsを除く)

あなたがシステムで作業していて、誰かがlsコマンド(/bin/ls)。現在のディレクトリ内のファイルのリストを取得するにはどうすればよいですか?それを試してみてください。

私は多くの方法を試し、インターネットでも検索しましたが、何もしませんでした。 lsコマンドの横で、すべてのファイルを一覧表示するためにどのコマンドを使用できるかを確認したいと思います。

27
tonberry
echo *

...は、Bourne互換シェルのファイルグロビングによって現在のフォルダー内のファイルを表示します。

これにより、すべてのファイルが1レベル下にリストされます。

echo */*

Bashでは、globstarが設定されている場合(shopt -s globstarで設定、shopt -u globstarで設定解除)の場合、すべてのファイルが再帰的にリストされます。

echo **
36
0xC0000022L
find -maxdepth 1 
find -maxdepth 1 -ls

もっと少なく TAB TAB

finds -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
23
user unknown

lsのように見せるために、Bashのforループを使用します。

for i in *; do echo $i; done

それがうまくいかない場合は、Python ;)

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

ただし、必要な制限パラメータを入力することをお勧めします。

6
Duck

Good ol 'vim;)(並べ替え、参照など)

vim .
6
gorsky

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
Mark McKinstry

echoバージョンに似ていますが、読みやすくするために1行に1つのエントリが出力されます。

printf %s\\n ./*

または

printf '%s\n' ./*

再帰的に(bash 4+の場合。他のシェルでは、設定するために別のオプションが必要か、globstarがデフォルトで有効になっています):

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

dirコマンドはどうですか? :)

/bin/dir

2
rook

まあ、emacsのシェルモードでlsを使用できなかった場合は、eshellモードに切り替えるか、単にdiredに切り替えます。

1
Jerry Asher

Bashシェル(または完了した他のシェル)を起動している場合は、「*」を入力してからタブを押すだけです。

または、私は通常Xを起動しているので、「nautilus。」を実行することもできますが、それは人間にとっては問題ありません。

/ usr/bin/lsattrを試すこともできます

しかし、現実の世界では、そのようなことが私に起こった場合、私は本当にをどうしますか?

Sudo apt-get install --reinstall coreutils
1
kriss

Bash、または同様のタブ補完を備えたシェルでは、実際のコマンドを使用する必要はまったくありません。wibbleの後に2つのタブが続くと、現在のディレクトリにあるファイルのリストが表示され、wibble /bin/の後には2つのタブに/ binの残りが表示されます。私はかつてこの状況で自分自身を見つけ(実際には、/ binを他のものとともに完全に殺しました)、echo *アプローチ@STATUS_ACCESS_DENIEDの使用を開始しましたが、最終的にタブ補完がより便利であることがわかりました。

1
Gordon Davisson

treeのもう1つの方法は、ここでは言及されていませんが、再帰的に実行され、findやlsとは異なり、エラーは発生しません(例:Permission deniedNot 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.
0