Linux档案与目录管理
Linux档案与目录管理
1. 目录与路径
1.1 相对路径与绝对路径
1.2 目录的相关操作: cd, pwd, mkdir, rmdir
cd [相对路径或绝对路径]
cd ~ [用户]: 切换家目录
cd ~tom/ :切换到tom家目录
cd ~/tom :切换到当前家目录下的tom文件夹
cd - :返回前一个工作目录(可以连续使用,其实就是两个目录之间的切换)
. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表『目前用户身份』所在的家目录
~cenyu 代表 account 这个用户的家目录(account 是个账号名称)
pwd [-P]
显示当前所在目录(print working directory)
接收参数: -P(大写) 显示确实的路径,而不是连接的路径
mkdir [-mp] 目录名称
创建新目录,接收两个参数
-m :配置文件的权限,是直接设定的 mkdir -m 711 test1
-p :帮助你直接将所需的目录递归建立起来 mkdir -p test1/test2/test3 此处会把原本不存在的test2文件也创建出来
rmdir [-p] 目录名称
删除空的目录,不能删除非空目录
接收参数-p:表示连同上层空的目录也一起删除 rmdir -p test1/test2/test3
1.3 关于执行文件路径的变量: $PATH
$PATH 环境变量,$表示后面接的是变量,可以直接调用的命令都必须添加在环境变量里面去
echo $PATH :显示出环境变量里已经存在的文件。
不同文件之间用冒号(:)分隔
PATH="$PATH":绝对路径
往PATH里面定义一个环境变量 PATH="$PATH":/root root文件被添加到PATH里面
2. 档案与目录管理
2.1 档案与目录的检视: ls
ls [-aAdfFhilnrRSt] 目录名称
档案与目录的检视,接收的参数很多
-a :全部的档案,连同隐藏档一起列出来
-d :仅列出目录本身,不管目录下面的档案数据
-h :将档案容量以人类易读的方式列出来
-l :长数据串行,包含文档的属性和权限等等
ls [--time={atime,ctime}] 目录名称
--time=atime :显示访问时间
--time=ctime :显示创建时间
2.2 复制、删除与移动: cp, rm, mv
cp [选项] /path1/xx /path2/yy
若yy是一个文件夹,则将xx复制到yy文件夹下;
若yy不存在,则将xx复制到path2下面,并从命名为yy
cp [-asfilprsu] 来源文件(source) 目标文件(destination)
-p :连同档案的属性一起复制过去,而非使用默认属性(备份常用);
-r :递归持续复制,用于目录的复制行为;(常用)
-d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;
-a :相当于 -pdr 的意思,至于 pdr 请参考下列说明;(常用)
rm [-fir] 档案或目录
-f :忽略不存在的档案,不会发出警告;
-i :互动模式,在删除前会询问一下
-r :递归删除!最常用也是最危险的
mv [-fiu] source destination
移动文件到另外一个文件,source可以是多个
-f :force强制的意思,如果目标档案已经存在,不会询问直接覆盖
-i :若目标档案 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标档案已经存在,且(source)比较新,才会更新(update)
2.3 取得路径的文件名与目录名称
basename 完整文件名(包含目录名称和文件名)
获取完整文件名中的最后的档案名
dirname 完整文件名
获取完整文件名中的目录
3. 档案内容查阅:
3.1 直接检视档案内容: cat, tac, nl
cat [-AbEnTv] 文件名
concatenate,将文件全部显示在该条命令下面,从第一行显示到最后一行,适合小文件,大文件的话只会显示最后一屏
-n :打印出行号,连同空白行也会有行号
-b :打印出行号,空白的不会打印
tac 文件名
反向列示,同cat,不同的是,这个查看是从文档的最后一行倒着显示到第一行
nl [-bnw] 文件名
添加行号打印,同cat -n
3.2 可翻页检视: more, less
more 文件
一页一页的显示档案信息,往下翻的时候有几个命令需要注意一下:
空格键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;
:f :立刻显示出文件名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该档案内容;
b 或 [ctrl]-b :代表往回翻页,不过这动作只对档案有用,对管线无用。
less 档案
也是一页一页的显示,只不过功能比more的功能更多一些,首先推荐这个
空格键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字符串 :向下搜寻『字符串』的功能
?字符串 :向上搜寻『字符串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!),从上到下
N :反向的重复前一个搜寻 (与 / 或 ? 有关!),从下到上
q :离开 less 这个程序;
3.3 资料撷取: head, tail
head [-n number] 档案
取出前面几行
-n :后面接数字,代表显示几行的意思。
head -n 20 /etc/man.config 显示该文件中的前20行,默认情况是前10行
head -n -100 /etc/man.config 去掉后100行的所有。
tail [-n number] 档案
取出档案的后面几行,默认显示最后10行
-n :后面接数字,代表显示几行的意思。
tail -n +100 /etc/man.config 100行以后的信息都会被显示出来
3.4 非纯文本档: od
od [-t TYPE] 档案
用来显示非纯文本文件,-t后面可以接参数
a:利用默认字符串输出 c:利用ASCII输出
3.5 修改档案时间与建置新档: touch
档案的三个是时间:
modification time (mtime): 最近内容修改的时间,默认显示的时间
status time (ctime): 最近权限和属性被修改的时间
access time (atime): 最近访问设备的时间
touch [-acdmt] 档案
修改档案的时间,最常用的是:1.建立一个空的档案;2.将某个档案日期修订为目前(mtime 和 atime)
-a :仅修订atime
-c :仅修改档案的时间,若档案不存在则不建立新档案
-d :后面可以接欲修订的日期而不用目前的时间,也可以使用 --date="日期或时间"
touch -d "2 days ago" bashrc 时间变为两天前,ctime没有变,其他有变
-m :仅修改 mtime ;
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
touch -t 0709120202 bashrc ctime没有变,其他的有变
touch testtouch 修改三个时间都是当前时间,若文件不存在,则创建这个新文件
4. 档案与目录的默认权限与隐藏权限
4.1 档案预设权限:umask
umask的功能:
目录的文件权限最高是777,文件预设没有可执行权限所以最大为666;但是umask默认的值是022,
umask是权限过滤符,文件或者目录的权限减去umask的值,就是目录和文件新创建时默认的权限值了
umask=数值
为umask赋值,更改了文件和目录新创建时的默认权限
4.3 观察文件类型:file
file 档案
观察文件类型,可以查看档案是属于哪个类型的:ASCII,data档案,或者binary
file ~/.dashrc
5. 指令与档案的搜寻:
5.1 脚本文件名的搜寻:which
which [-a] command
用来查找指令的完整文件名放在什么地方,默认只在PATH中的文件中查找
-a :将所有由PATH目录中可以找到的指令均列出,而不止第一个被找到的指令名称
which -a ls
5.2 档案档名的搜寻:whereis, locate, find
whereis [-bmsu] 档案或目录名
用来搜索档案的,直接查找的出具库,所以会很快
-b :只找binary格式的档案
-m :只找在说明文件manual路径下的档案
-s :只找source来源档案
-u :搜索不在上述三个项目中的其他特殊档案
locate [-ir] keyword
用来搜索档案
-i :忽略大小写的差异;
-r :后面可接正规表示法的显示方式
updatedb
whereis和locate是直接查找数据库里面的,但是数据库档案一天更新一次,所以当天的文件是查找不到的,
这个时候只要更新一个数据库就可以了,通过这个指令用来更新
find [PATH] [option] [action]
find查找比较慢,是通过在硬盘上查找的。
[PATH] 用来指定路径,默认是在当前所在路径查找
[option] 属性,指出按照什么属性来查找,比如按照时间,名称,大小等查找
1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
-mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的档案;
-mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的档案档名;
-mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的档案档名。
-newer file :file 为一个存在的档案,列出比 file 还要新的档案档名
其他略过
[action] 值,属性下对应的值
6. 极重要!权限与指令间的关系:
6.1、让用户能进入某目录成为『可工作目录』的基本权限为何:
可使用的指令:例如 cd 等变换工作目录的指令;
目录所需权限:用户对这个目录至少需要具有 x 的权限
额外需求:如果用户想要在这个目录内利用 ls 查阅文件名,则用户对此目录还需要 r 的权限。
6.2、用户在某个目录内读取一个档案的基本权限为何?
可使用的指令:例如本章谈到的 cat, more, less 等等
目录所需权限:用户对这个目录至少需要具有 x 权限;
档案所需权限:使用者对档案至少需要具有 r 的权限才行!
6.3、让使用者可以修改一个档案的基本权限为何?
可使用的指令:例如 nano 或未来要介绍的 vi 编辑器等;
目录所需权限:用户在该档案所在的目录至少要有 x 权限;
档案所需权限:使用者对该档案至少要有 r, w 权限
6.4、让一个使用者可以建立一个档案的基本权限为何?
目录所需权限:用户在该目录要具有 w,x 的权限,重点在 w 啦!
6.5、让用户进入某目录并执行该目录下的某个指令之基本权限为何?
目录所需权限:用户在该目录至少要有 x 的权限;
档案所需权限:使用者在该档案至少需要有 x 的权限
作者:岑宇 出处:http://www.cnblogs.com/cenyu/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |
>
|