整理一些关于文件(file)操作的常用命令,供自己查询使用。
用法:返回包含给定文件的字符串,如果给定了多个文件,则返回包含文件的串联字符串。正向查看文件的内容。
cat ( [options,] 文件 [, file.. .] )
cat ( [options,] file_array )
可用选项:
-n: 输出所有行,标示文件的行数
例:
var str =cat('file*.txt');
var str =cat('file1', 'file2');
var str =cat(['file1', 'file2']);
用法: 复制文件。
cp ( [options,] 源 [, source.. .],dest )
cp ( [options,] source_array,dest )
可用选项:
-f: 强制( 默认行为)
-n: 没有 clobber
-u: 仅在源更新时复制
-R: 递归
-L: 跟随链接符号
-P: 不跟踪符号符号
例:
cp('file1', 'dir1');
cp('-R', 'path/to/dir/', '~/newCopy/');
cp('-Rf', '/tmp/*', '/usr/local/*', '/home/tmp');
cp('-Rf', ['/tmp/*', '/usr/local/*'], '/home/tmp'); // same as 上面
用法:顾名思义是查找文件的意思,返回给定路径中所有文件的array,find与ls(’-R’, path)的主要区别是find产生的文件名包括基目录,比如 src/lib/file1,而不仅仅是 file1。
find( 路径 [, path.. .] )
find( path_array )
例:
find('src', 'lib');
find(['src', 'lib']); // same as 上面
find('.').filter(function(file) { returnfile.match(/.js$/); });
用法:从给定文件读取输入字符串并返回包含给定文件的所有行的字符串。
grep ( [options,] regex_filter,文件 [, file.. .] )
grep( [options,],file_array )
可用选项:
-v: 反转 正规表达式的意义并打印与标准不匹配的行。
-L: 只打印匹配文件的文件名
例:
grep('-v', 'GLOBAL_VARIABLE', '*.js');
grep('GLOBAL_VARIABLE', '*.js');
用法:读取文件的开头。
head( [ {'-n': <num> },] 文件 [, file.. .]
head( [ {'-n': <num> },] file_array
可用选项:
-n <num>: 显示文件的第一个 <num> 行
例:
var str =head({'-n':1}, 'file*.txt');
var str =head('file1', 'file2');
var str =head(['file1', 'file2']); // same as 上面
用法:创建一个指向文件或目录的物理链接 ,如果目标已经存在,使用-f强制链接。
( [options,] 源[source],dest )
可用选项:
-s: 链接符号
-f: 强制
例:
ln('file', 'newlink');
ln('-sf', 'file', 'existing');
用法:返回给定路径中的文件的array,如果未提供路径,则返回当前目录。
ls ( [options,] [path,.. .] )
ls ( [options,] path_array )
可用选项:
-R: 递归
-A: 所有文件( 包括以 . 开头的文件,. 和 .. 除外)
-L: 跟随链接符号
-d: 列出目录本身,而不是它们的内容
-L: 列出代表每个文件的对象,每个文件包含包含 ls -l 输出字段的字段
例:
ls('projs/*.js');ls('-R', '/users/me', '/tmp');
ls('-R', ['/users/me', '/tmp']); // same as 上面
ls('-l', 'file.txt'); // { name: 'file.txt', mode: 33188, nlink: 1,.. .}
用法:移动文件。
( [options, ] 源 [, source.. .],目标')
( [options, ] source_array,目标')
可用选项:
-f: 强制( 默认行为)
-n: 没有 clobber
例:
mv('-n', 'file', 'dir/');
mv('file1', 'file2', 'dir/');
mv(['file1', 'file2'], 'dir/'); // same as 上面
用法:删除文件。
rm ( [options,] 文件 [, file.. .] )
rm ( [options,] file_array )
可用选项:
-f: 强制
-r: 递归
例:
rm('-rf', '/tmp/*');
rm('some_file.txt', 'another_file.txt');
rm(['some_file.txt', 'another_file.txt']); // same as 上面
用法:从 files 读取输入字符串,并使用给定的搜索 正规表达式 和替换字符串或者函数在输入上执行一个 JavaScript replace()。 替换后返回新字符串。
sed ( [options,] search_regex,替换,文件 [, file.. .] )
sed( [options,] search_regex,替换,file_array )
可用选项:
-i: 替换'文件'的内容。 注意,不会创建备份 !
例:
sed('-i', 'PROGRAM_VERSION', 'v0.1.3', 'source.js');
sed(/.*DELETE_THIS_LINE.*n/, '', 'source.js');
用法:返回文件的内容,排序为 line-by-line。 对多个文件进行排序与它们的内容混合,就像unix排序一样。
sort( [options,] 文件 [, file.. .] )
sort( [options,] file_array )
可用选项:
-R: 反转比较结果
-n: 根据数值比较
例:
sort('foo.txt', 'bar.txt');
sort('-r', 'foo.txt');
用法:读取文件的结尾。
tail ({-n: <num> },] 文件 [, file.. .])
tail ({-n: <num> },] file_array)
可用选项:
-n <num>: 显示文件的最后一个 <num> 行
例:
var str =tail({'-n':1}, 'file*.txt');
var str =tail('file1', 'file2');
var str =tail(['file1', 'file2']); // same as 上面
用法:类似于Unix中的重定向运算符 >,但与 ShellStrings ( 如 cat。grep 等返回的) 一起工作。 Unix重定向一样,会覆盖任何现有文件 !
cat(file).to(file);
grep(file).to(file);
例:
cat('input.txt').to('output.txt');
用法:类似于Unix中的redirect-and-append操作符 >>,但它与 ShellStrings ( 如 cat。grep 等返回的)。
cat(file).toEnd(file);
grep(file).toEnd(file);
例:
cat('input.txt').toEnd('output.txt');
用法:将每个的访问及修改时间都更新为目前时间。除非是-c,否则会创建新的文件。
touch( [options,] 文件 [, file.. .] )
touch( [options,] file_array )
可用选项:
-A: 只更改访问时间
-c: 不创建任何文件
-m: 只更改修改时间
-d DATE: 分析日期并使用它而不是当前时间
-r FILE: 使用文件的时间代替当前时间
例:
touch('source.js');
touch('-c', '/path/to/some/dir/source.js');
touch({ '-r':FILE }, '/path/to/some/dir/source.js');
整理一些关于目录(dir)操作的常用命令,供自己查询使用。