shelljs⼀些常⽤的命令⾏
shelljs⼀些常⽤的命令⾏
file相关
整理⼀些关于⽂件(file)操作的常⽤命令,供⾃⼰查询使⽤。
cat
⽤法:返回包含给定⽂件的字符串,如果给定了多个⽂件,则返回包含⽂件的串联字符串。正向查看⽂件的内容。
cat ( [options,] ⽂件 [, file.. .] )
cat ( [options,] file_array )
可⽤选项:
-n: 输出所有⾏,标⽰⽂件的⾏数
例:
var str =cat('file*.txt');
var str =cat('file1', 'file2');
var str =cat(['file1', 'file2']);
cp
⽤法: 复制⽂件。
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 上⾯
find
⽤法:顾名思义是查⽂件的意思,返回给定路径中所有⽂件的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
⽤法:从给定⽂件读取输⼊字符串并返回包含给定⽂件的所有⾏的字符串。
grep ( [options,] regex_filter,⽂件 [, file.. .] )
grep( [options,],file_array )
可⽤选项:
-v: 反转正规表达式的意义并打印与标准不匹配的⾏。
-
L: 只打印匹配⽂件的⽂件名
例:
grep('-v', 'GLOBAL_VARIABLE', '*.js');
grep('GLOBAL_VARIABLE', '*.js');
head
⽤法:读取⽂件的开头。
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 上⾯
ln
⽤法:创建⼀个指向⽂件或⽬录的物理链接 ,如果⽬标已经存在,使⽤-f强制链接。
( [options,] 源[source],dest )
可⽤选项:
-s: 链接符号
-f: 强制
例:
ln('file', 'newlink');
ln('-sf', 'file', 'existing');
ls
⽤法:返回给定路径中的⽂件的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', ''); // { name: '', mode: 33188, nlink: 1,.. .}
mv
⽤法:移动⽂件。
( [options, ] 源 [, source.. .],⽬标')
( [options, ] source_array,⽬标')
可⽤选项:
-f: 强制( 默认⾏为)
-n: 没有 clobber
例:
mv('-n', 'file', 'dir/');
mv('file1', 'file2', 'dir/');
mv(['file1', 'file2'], 'dir/'); // same as 上⾯
rm
⽤法:删除⽂件。
rm ( [options,] ⽂件 [, file.. .] )
rm ( [options,] file_array )
可⽤选项:
-f: 强制
-r: 递归
例:
rm('-rf', '/tmp/*');
rm('', '');
rm(['', '']); // same as 上⾯
sed
⽤法:从 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');
sort
⽤法:返回⽂件的内容,排序为 line-by-line。 对多个⽂件进⾏排序与它们的内容混合,就像unix排序⼀样。
sort( [options,] ⽂件 [, file.. .] )
sort( [options,] file_array )
可⽤选项:
-R: 反转⽐较结果
-n: 根据数值⽐较
find查命令的使用例:
sort('', '');
sort('-r', '');
tail
⽤法:读取⽂件的结尾。
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 上⾯
(file)
⽤法:类似于Unix中的重定向运算符 >,但与 ShellStrings ( 如 cat。grep 等返回的) ⼀起⼯作。 Unix重定向⼀样,会覆盖任何现有⽂件!
cat(file).to(file);
grep(file).to(file);
例:
cat('').to('');
End(file)
⽤法:类似于Unix中的redirect-and-append操作符 >>,但它与 ShellStrings ( 如 cat。grep 等返回的)。
cat(file).toEnd(file);
grep(file).toEnd(file);
例:
cat('').toEnd('');
touch
⽤法:将每个的访问及修改时间都更新为⽬前时间。除⾮是-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)操作的常⽤命令,供⾃⼰查询使⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。