lsリストで長いファイル名を切り捨てることはできますか


10

非常に長い名前のファイルがたくさんあります。ls -Cを使用してファイル名を切り捨てて、ビュー全体の列を増やす方法はありますか?

または、コンパクトなリストを取得するより良い方法はありますか?

回答:


9

あなたは次のようなことをすることができます:

ls | cut -c1-20 | columns -W "${COLUMNS:-80}"

列の例

(それだcolumnssGNUのAUTOGENから)。または:

ls | cut -c1-20 | column -c"${COLUMNS:-80}"

列の例columnBSD bsdmainutils、Debian、またはその派生物で見られる 使用。

zsh 列に出力することもサポートしているため、次のような関数を定義できます。

setopt extendedglob
c() print -rC$[COLUMNS/(($1)+2)] -- "${(M)@[2,-1]##?(#c0,$[$1])}"

そしてそれを次のように使用します:

c 20 *.txt

列のリストtxtファイルを印刷するには、20文字に切り捨てます。

そして、少しクレイジーにするために、以下を追加できます。

command_not_found_handler() {(($1)) && c "$@"}

そうすれば、次のこともできます。

20 *

あるいは:

8+8 *

zshの例


素晴らしい、ありがとう。私のFedora 12システムでは、lsを使用しました。カット-c1-20 | 列-W "$ {COLUMNS:-80}"行を追加すると、すべてのファイルが1つの画面に表示されます。
Harry Weston、

0

80カラムスクリーンを想定して、

ls -F | perl -lne 's/(.{34}).*/$1... /s ; print' | column -x | more

ここに画像の説明を入力してください

ls -FC代わりに使用して期限でソートします


(補足:はにlsエイリアスされているため、既にスクロールしていls -CF --color | more -rます。それがベストプラクティスであるかどうかはわかりません...)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.