fls 使用方法
【機能概要】
ファイルの一覧を表示します。または、該当のファイルに対してコマンドを実行します。
【実行形式】
(1) fls -option [cond] [exec] [{directory/filename}…]
(2) fls -option [cond] [exec] -S directory [select…]
(1)はディレクトリ(フォルダ)またはファイル名に該当するファイル名及びディレクトリを表示
します。
(2)は指定ディレクトリ(path2)以下を検索して、ファイル選択条件(select)と一致する
ファイルの一覧を表示します。
【パラメータ】
(1)optionはファイル情報の表示の仕方やファイルの並び順を次のように指定します。
l long format(1)でファイル情報を表示します。これは次の形式となります。
mode size modified-date filename
モードは次の形式となります。
tashrwx
ここで、tはファイルのタイプ,aはアーカイブ属性,sはシステム属性,hは不可視属性,
rは読込属性,wは書込属性,xは実行属性です。
注.アーカイブ属性は、新規に作成された場合や更新された場合にセットされる属性
のことです。
ファイルタイプは、ディレクトリとそれ以外のファイルという分類のみとなります。
つまり、prn,con等のキャラクター・ファイルは通常のファイルとなります。
なお、prnやcon等は実際には存在しないファイルですが、ファイル名として指定
した場合には、それらのファイルが表示されます。
L long format(2)でファイル情報を表示します。これは次の形式となります。
mode size modify access filename
a 隠しファイルも表示します。
p ファイル名をパスを付けて表示します。
e 拡張子でソートします。
t 更新日付でソートします。(最新のものが先頭となります)
u アクセス日付でソートします。(最新のものが先頭となります)
s サイズでソートします。
v ソートを逆順で行います。
T ディレクトリ毎のトータル情報を表示します。
(2)condは、ファイルの選択条件を指定するもので、次のものがあります。
-attr attr
指定した属性attrのものを選択します。
この属性には、以下のものを指定できます。
d:ディレクトリ, s:システムファイル,h:隠しファイル
a:アーカイブファイル,r:読み込み専用ファイル
複数の属性を指定した場合、AND条件となります。
-size n[,m]
nバイト以上またはnバイトからmバイトのファイルサイズのものを選択します。
-mtime n
更新日付が今日よりn日以内のものを表示します。
-mdate date
更新日付がdate以上のものを表示します。
dateは"yyyy/mm/dd"で指定します。
-atime n
アクセス日付が今日よりn日以内のものを表示します。(注1)
-adate date
アクセス日付がdate以上のものを表示します。
dateは"yyyy/mm/dd"で指定します。
-rand n
ランダムにnファイルを選択します。ただし、これはexec指定と共に用います。
(3)execは、対象のファイルに対してコマンド実行を行うもので、次のように指定します。
-EX[:{h|p|l}] "command"
h 実行コマンド(command)の表示を行わないようにします。
p コマンドの表示のみとします。
l 実行コマンドを標準出力に出します。
commandには、以下のものを記述できます。
$fid 拡張子を除いたファイル名(パスは含まない)
$f[:$] 対象のファイル名(パスを含む)
":$"をつけた場合には、パスを除くファイル名のみとなります。
$s[:{n}] 実行シーケンス番号
":{n}"を付加した場合には、nから始めます。ただし、nは0以上の整数。
$n[:{n}] ファイル名の拡張子を除いた最後の数値文字列
":{n}"を付加した場合には、n+1文字目から始めます。ただし、nは0以上の整数。
例えば $nの場合、"a01b02c.03"は"02"となります。
また、$n:{1}の場合、"a01b02c.03"は"2"となります。
' '"'に変換します。また、'...'内にある'"'は削除されます。
(4)selectは、ファイル名選択条件を指定するものです。これは次のように指定し
ます。
[~]filename ...
filename
ファイル名を指定します。これにはワイルドカードを用いることができます。
~filename
ファイル名以外を対象とします。ただし他のファイル名選択と一致するものは
除外されます。
selectを省略した場合には、指定ディレクトリ配下の全部のファイルが対象となります。
注1. 例えば「エクスプローラ」でコピーした場合、256KB以上のファイルはアクセス日付が
変更されますが、それ以下では変更されません。
【補足説明】
(1)ワイルドカードの使用について(曖昧指定の場合)
パラメータ"-S directory"の場合を除いて、ディレクトリやファイルには以下のワイルドカードを使用
できます。
*:任意の文字列(0文字列も含む)と一致
?:任意の1文字と一致
(2)パスの指定形式
ディレクトリやファイルを指定する場合には、パスをつけることができます。これには絶対指定と相対
指定とがあります。
絶対指定というのはルートディレクトリ(\)から指定するもので、相対指定はカレントディレクトリ(.)
から指定するものです。
ただし相対指定は以下のいずれかの形式とします。
・[x:][.\]path (カレントディレクトリからの指定)
・[x:]..\[..\…]\path (上位ディレクトリからの指定)
・[x:][path\..\[..\…]]path
ここで、xはドライブの文字で、pathは、"."や".."を除く各ディレクトリを\で区切ったものです。
(3)ワイルドカード使用についての注意
ディレクトリの指定として、'*'や'?'を指定した場合には、該当のディレクトリ名のみを表示します。
(4)"-EX"で実行する場合の注意点
当コマンドは長いファイル名に対応していますが、実行するコマンドが長いファイル名に対応していない
場合には、ファイル名は8.3形式で切られます。
この結果、ファイルが見つからなかったり、途中までのファイル名で書き込んだりします。
(5)パスの表示は、ワイルドカードの展開を行なったもの以外は、入力で指定したものが表示されます。
たとえば、ディレクトリ名が大文字で作成されていても、それを小文字で指定した場合には、小文字で表示
されます。
(6)当コマンド名がls.exe(大文字の場合も同じ)となっている場合には、パスの指定や表示でのディレクト
リやファイルとの区切り文字が '/' となります(しかし'\'も使用できます)。
ただし、execの中は、この変換を行ないません。
日本語バージョンのOSの場合(というよりはこれはキーボードの指定によるものですが)、ディレクトリま
たはファイルとの区切り文字は、'\'になってしまうのですが、本来、これはバックスラッシュです。
しかしながら、その区切り文字に'\'を使用しているのは、かなり違和感を感じると思われます。
そこで、それをUNIX流儀にしたい場合には、コマンド名を上記に替えることによって行なえるようにしました。
(その場合、機能的にはUNIXのlsコマンドとは異なることに注意して使用して下さい。)
【実行例】
・fls -lt a* b*
・fls -lsv ... ファイルサイズの大きい順に表示します。
・fls -l -mtime 30 *.exe ... 更新日付が今日より30日以内のEXEファイルを表示します。
・fls -l -S . ~*.exe fls.exe ~*.dll ... カレントディレクトリ以下より、fls.exeを除くEXEファイル
及びDLLファイル以外のものを表示します。
・fls -EX:h "echo $f" *.c *.h
・fls -rand 3 -EX "cpf $f \tmp\file$s.bmp" *.bmp
... ビットマップファイルをランダムに選択し、
"\tmp\file1.bmp"等の名前でコピーします。
・fls -EX "attrib -r $f" -S . * ... カレントディレクトリ以下の全ファイルの読取り専用属性
を解除します。
・fls -EX "funpr -l 'main' $f" file.c ...「funpr -l "main" file.c」を実行
・fls -EX "echo $fid $s" "A B.txt" ...「echo "A B" 1」を実行
・fls -EX "echo '$fid $s'" "A B.txt" ...「echo "A B 1"」を実行
ホームページへ