Linux 命令行文件管理
get current file path
1 2 3 4 5 6 | #!/bin/bash
# Absolute path to this script, e.g. /home/user/bin/foo.sh
SCRIPT=$(readlink -f "$0")
# Absolute path this script is in, thus /home/user/bin
SCRIPTPATH=$(dirname "$SCRIPT")
echo $SCRIPTPATH
|
这些程序基本都有一个模式:如果不给定文件作为参数,那么就从stdin读取,从 stdout 输出,非常适合 pipe,而且一般可以接受多个文件作为参数,并把结果合并
ls
ls 的一个很好用的命令组合 ls -sail
stat 和 file
stat 读取一个文件的所有信息,file 猜测文件的类型
cat
cat > fiie1 从标准输入读取并插入到file1 cat -ns file -n命令表示加入行号,-s 表示压缩多个空行到一个
chattr
find
Syntax
find <dir> [!] <filter> <action>
Filters
-name 后面可以跟通配符
-wholename
-regex Match on a whole path -iregex 不区分大小写
-type 文件类型 f 文件 d 目录 l 链接
-atime/mtime/ctime 使用+-区分未来过去,可以使用的单位smhdw
-newer file 比
-size 后面跟大小可以使用ckMGTP
-user/-group/-nouser 用户
-perm 权限
-path 在整个路径中,使用通配符
Actions
执行的动作跟在-exec/-ok后面
find ... -exec command {} + .. # give all files combined to the command
find ... -exec command {} \; # give each file
Tips
如果打印出绝对路径,使用find $PWD ...
find with xargs
find ... -print0 | xargs -0 ...
A numeric mode is from one to four octal digits (0-7), derived by adding up the bits with values 4, 2, and 1. Omitted digits are assumed to be leading zeros. The first digit selects the set user ID (4) and set group ID (2) and restricted deletion or sticky (1) attributes. The second digit selects permissions for the user who owns the file: read (4), write (2), and execute (1); the third selects permissions for other users in the file's group, with the same values; and the fourth for other users not in the file's group, with the same values.
权限
Linux 文件的权限可以使用0-7的四个八进制数字代表, 由1/2/4三个数字相加而成. 省略的数字会被认为是按0打头的. 第一个数字设定了 set user ID(4), set group ID(2) 和 限制删除或者叫 sticky bit(1). 第二个数字设定了文件所有者的权限: read(4), write(2), execute(1). 第三个设定了文件所在组的权限