当前位置: 首页 > 工具软件 > ShellJS > 使用案例 >

shelljs一些常用的命令行

申高峰
2023-12-01

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', 'file.txt'); // { name: 'file.txt', 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('some_file.txt', 'another_file.txt');
rm(['some_file.txt', 'another_file.txt']); // 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: 根据数值比较

例:

sort('foo.txt', 'bar.txt');
sort('-r', 'foo.txt');

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 上面

ShellString.prototype.to(file)

用法:类似于Unix中的重定向运算符 >,但与 ShellStrings ( 如 cat。grep 等返回的) 一起工作。 Unix重定向一样,会覆盖任何现有文件 !

cat(file).to(file);
grep(file).to(file);

例:

cat('input.txt').to('output.txt');

ShellString.prototype.toEnd(file)

用法:类似于Unix中的redirect-and-append操作符 >>,但它与 ShellStrings ( 如 cat。grep 等返回的)。

cat(file).toEnd(file);
grep(file).toEnd(file);

例:

cat('input.txt').toEnd('output.txt');

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)操作的常用命令,供自己查询使用。

 类似资料: