Linux基础(七):Linux文件与目录管理

Linux文件与目录管理

  • 1.目录与路径
    • 1.1 cd
    • 1.2 pwd
    • 1.3 mkdir
    • 1.4 rmdir
    • 1.5 ls
    • 1.6 cp
    • 1.7 rm
    • 1.8 mv
  • 2.可执行文件路径的变量:$PATH
  • 3.从字符串中获取目录名称和文件名称
  • 4.文件内容读取
    • 4.1 cat与tac
    • 4.2 nl
    • 4.3 more和less
    • 4.4 head与tail
    • 4.5 od
  • 5 使用touch来改变文件的时间
  • 6 文件的隐藏属性
  • 7.文件的搜索
    • 7.1 指令文件的搜索
    • 7.2 普通文件的搜索

1.目录与路径

几种特殊的目录:

.                     代表此层目录
..                    代表上一层目录
-                     代表前一个工作目录
~                    代表“目前使用者身份”所在的主文件夹
~account        代表 account 这个使用者的主文件夹( account是个帐号名称)
[fle@CentOS7 ~]$ pwd
/home/fle
[fle@CentOS7 ~]$ cd .
[fle@CentOS7 ~]$ cd ..
[fle@CentOS7 home]$ cd ~
[fle@CentOS7 ~]$ cd -
/home
[fle@CentOS7 home]$ pwd
/home
[fle@CentOS7 home]$ 

根目录的...其实都是根目录本身:

[fle@CentOS7 home]$ cd /
[fle@CentOS7 /]$ ls -al
总用量 28
dr-xr-xr-x.  17 root root   244 6月  21 16:56 .
dr-xr-xr-x.  17 root root   244 6月  21 16:56 ..
-rw-r--r--    1 root root     0 6月  21 16:56 .autorelabel
lrwxrwxrwx.   1 root root     7 5月  18 20:57 bin -> usr/bin
dr-xr-xr-x.   6 root root  4096 5月  18 21:03 boot
drwxr-xr-x   20 root root  3400 9月  30 09:21 dev
drwxr-xr-x. 179 root root 12288 10月 12 19:47 etc
drwxr-xr-x.   7 root root    73 9月  29 16:55 home
lrwxrwxrwx.   1 root root     7 5月  18 20:57 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 5月  18 20:57 lib64 -> usr/lib64
drwxr-xr-x.   2 root root     6 4月  11 2018 media
drwxr-xr-x.   2 root root     6 4月  11 2018 mnt
drwxr-xr-x.   3 root root    16 5月  18 21:00 opt
dr-xr-xr-x  243 root root     0 9月  28 21:04 proc
dr-xr-x---.   7 root root   247 10月 13 20:14 root
drwxr-xr-x   58 root root  1600 10月 13 06:31 run
lrwxrwxrwx.   1 root root     8 5月  18 20:57 sbin -> usr/sbin
drwxr-xr-x.   2 root root     6 4月  11 2018 srv
dr-xr-xr-x   13 root root     0 9月  28 21:04 sys
drwxrwxrwt.  18 root root  4096 10月 13 20:14 tmp
drwxr-xr-x.  13 root root   155 5月  18 20:57 usr
drwxr-xr-x.  24 root root  4096 5月  18 21:15 var

可以看到...的属性都是一样的。
下面介绍四种最常见的目录操作方式:cd、pwd、mkdir、rmdir

1.1 cd

cd是Change Directory的缩写, 这是用来变换工作目录的指令。看一个例子:

[fle@CentOS7 ~]$ pwd           //显示当前目录,登录之后的终端就是登录账号的主文件夹
/home/fle
[fle@CentOS7 ~]$ su            //切换root身份,目录不变
密码:
[root@CentOS7 fle]# pwd        //显示当前目录,其实[root@CentOS7 fle]中的fle的位置就是表示了目前所处的文件夹
/home/fle
[root@CentOS7 fle]# cd ~       //由于当前的账号是root,所以~表示的是/root,也就是root账号的主文件夹
[root@CentOS7 ~]# pwd
/root
[root@CentOS7 ~]# cd -         //cd -表示去上一次的目录,就是/home/fle,身份是不会变的
/home/fle
[root@CentOS7 fle]# pwd
/home/fle
[root@CentOS7 fle]# 

1.2 pwd

pwd是Print Working Directory的缩写, 也就是显示目前所在目录的指令。

[fle@CentOS7 /]$ cd /lib
[fle@CentOS7 lib]$ pwd
/lib
[fle@CentOS7 lib]$ pwd -P
/usr/lib

pwd 命令的 -P 选项用于显示物理路径,即解析符号链接后的实际路径。当你在符号链接目录中运行 pwd 命令时,使用 -P 选项会返回该符号链接所指向的真实物理路径。根目录下的lib目录是一个链接目录,实际的内容存放在/usr/lib中。

1.3 mkdir

mkdir用于创建新的空目录。

[fle@CentOS7 lib]$ mkdir --help
用法:mkdir [选项]... 目录...
Create the DIRECTORY(ies), if they do not already exist.Mandatory arguments to long options are mandatory for short options too.-m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask-p, --parents     no error if existing, make parent directories as needed-v, --verbose     print a message for each created directory-Z                   set SELinux security context of each created directoryto the default type--context[=CTX]  like -Z, or if CTX is specified then set the SELinuxor SMACK security context to CTX--help		显示此帮助信息并退出--version		显示版本信息并退出GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告mkdir 的翻译错误
要获取完整文档,请运行:info coreutils 'mkdir invocation'

重上面可以看到mkdir有4哥可选的参数:
①-m
设定目录的权限
②-p
当所创建的目录中存在多层目录结构时不会报错,如mkdir ./test1/test2/test3这样,这样的写法在创建的时候是先创建test3目录,而./test1/test2目录不存在,所以会报错,加-p就不会报错。
③-v
在每创建一个目录时打印信息,告诉你创建了哪个目录。
④-Z
为每个创建的目录设置默认的 SELinux 安全上下文。

其中常用的是-m和-p:

[fle@CentOS7 桌面]$ mkdir -m 777 test1
[fle@CentOS7 桌面]$ mkdir ./test1/test2/test3
mkdir: 无法创建目录"./test1/test2/test3": 没有那个文件或目录
[fle@CentOS7 桌面]$ mkdir -p ./test1/test2/test3
[fle@CentOS7 桌面]$ cd ./test1
[fle@CentOS7 test1]$ tree
.
└── test2└── test32 directories, 0 files
[fle@CentOS7 test1]$ cd ..
[fle@CentOS7 桌面]$ ls -l test1
总用量 0
drwxrwxr-x 3 fle fle 19 10月 13 21:34 test2

1.4 rmdir

删除空的目录,非空的目录不能用rmdir来删除。

[fle@CentOS7 test1]$ rmdir --help
用法:rmdir [选项]... 目录...
删除指定的空目录。--ignore-fail-on-non-empty忽略仅由目录非空产生的所有错误-p, --parents   remove DIRECTORY and its ancestors; e.g., 'rmdir -p a/b/c' issimilar to 'rmdir a/b/c a/b a'-v, --verbose   output a diagnostic for every directory processed--help		显示此帮助信息并退出--version		显示版本信息并退出GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告rmdir 的翻译错误
要获取完整文档,请运行:info coreutils 'rmdir invocation'

下面的例子先创建目录再删除目录:

[fle@CentOS7 桌面]$ rm -r test1
[fle@CentOS7 桌面]$ mkdir -p test1/test2/test4 test1/test3
[fle@CentOS7 桌面]$ touch test1/test3/file
[fle@CentOS7 桌面]$ tree test1
test1
├── test2
│   └── test4
└── test3└── file3 directories, 1 file
[fle@CentOS7 桌面]$ rmdir -p test1/test2/test4
rmdir: 删除目录 "test1" 失败: 目录非空
[fle@CentOS7 桌面]$ tree test1
test1
└── test3└── file1 directory, 1 file

从上面的结果可以看出,rmdir的-p选项会一直删除空目录直到遇到非空的父目录。对于非空的目录,使用rm -r命令来删除。

1.5 ls

ls用来列举目录。
在这里插入图片描述
其中常用的是-l -a -d。注意ls命令后面是可以跟目录的,列出指定目录的文件。

[fle@CentOS7 ~]$ ls -a /
.   .autorelabel  boot  etc   lib    media  opt   root  sbin  sys  usr
..  bin           dev   home  lib64  mnt    proc  run   srv   tmp  var
[fle@CentOS7 ~]$ ls -l /
总用量 28
lrwxrwxrwx.   1 root root     7 5月  18 20:57 bin -> usr/bin
dr-xr-xr-x.   6 root root  4096 5月  18 21:03 boot
drwxr-xr-x   20 root root  3360 10月 14 21:34 dev
drwxr-xr-x. 179 root root 12288 10月 14 21:34 etc
drwxr-xr-x.   7 root root    73 9月  29 16:55 home
lrwxrwxrwx.   1 root root     7 5月  18 20:57 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 5月  18 20:57 lib64 -> usr/lib64
drwxr-xr-x.   2 root root     6 4月  11 2018 media
drwxr-xr-x.   2 root root     6 4月  11 2018 mnt
drwxr-xr-x.   3 root root    16 5月  18 21:00 opt
dr-xr-xr-x  241 root root     0 10月 14 21:33 proc
dr-xr-x---.   7 root root   247 10月 14 20:58 root
drwxr-xr-x   58 root root  1600 10月 14 22:08 run
lrwxrwxrwx.   1 root root     8 5月  18 20:57 sbin -> usr/sbin
drwxr-xr-x.   2 root root     6 4月  11 2018 srv
dr-xr-xr-x   13 root root     0 10月 14 21:33 sys
drwxrwxrwt.  19 root root  4096 10月 14 22:08 tmp
drwxr-xr-x.  13 root root   155 5月  18 20:57 usr
drwxr-xr-x.  24 root root  4096 5月  18 21:15 var
[fle@CentOS7 ~]$ ls -ld /
dr-xr-xr-x. 17 root root 244 6月  21 16:56 /

1.6 cp

用于复制。
在这里插入图片描述
下面使用常用的-a -i -p -r进行实验。
(1)使用-i来提示是否覆盖

[root@CentOS7 ~]# ls -a
.                .bash_logout   .config               .local    .xautheLKGRv
..               .bash_profile  .cshrc                .pki      .xauthWSzuls
anaconda-ks.cfg  .bashrc        .dbus                 .tcshrc
.bash_history    .cache         initial-setup-ks.cfg  .viminfo
[root@CentOS7 ~]# cd .bashrc
-bash: cd: .bashrc: 不是目录
[root@CentOS7 ~]# cp -i ~/.bashrc /tmp/.bashrc
[root@CentOS7 ~]# cp -i ~/.bashrc /tmp/.bashrc
cp:是否覆盖"/tmp/.bashrc"? n
[root@CentOS7 ~]# cd /tmp
[root@CentOS7 tmp]# ls -a
.
..
.bashrc
.esd-1000
.font-unix
.ICE-unix
ssh-lzD8MBGwfOho
systemd-private-02ca80909c574bad90e53ac0130e9364-bolt.service-uuHLVh
systemd-private-02ca80909c574bad90e53ac0130e9364-chronyd.service-PgzlPF
systemd-private-02ca80909c574bad90e53ac0130e9364-colord.service-zZD2Mw
systemd-private-02ca80909c574bad90e53ac0130e9364-cups.service-tH2JOm
systemd-private-02ca80909c574bad90e53ac0130e9364-fwupd.service-uEKbie
systemd-private-02ca80909c574bad90e53ac0130e9364-named.service-EIEAvA
systemd-private-02ca80909c574bad90e53ac0130e9364-rtkit-daemon.service-74xmIZ
.Test-unix
tracker-extract-files.1000
VMwareDnD
vmware-root_767-4256479648
vmware-root_785-4282170929
.X0-lock
.X11-unix
.XIM-unix
yum_save_tx.2024-10-14.06-31.ojtghv.yumtx
yum_save_tx.2024-10-15.06-09.9E4H_u.yumtx
yum_save_tx.2024-10-22.11-29.PJ1x7e.yumtx
yum_save_tx.2024-10-23.06-29.YZom6B.yumtx

(2)不加任何选项的复制
cp不加任何选项的情况下,是不会复制文件的User、Group的,文件的创建时间也会不一样。

[root@CentOS7 tmp]# cp /var/log/wtmp .
[root@CentOS7 tmp]# ls -l /var/log/wtmp ./wtmp
-rw-rw-r--. 1 root utmp 63360 10月 23 10:11 /var/log/wtmp
-rw-r--r--  1 root root 63360 10月 23 16:45 ./wtmp

从上面可以看到,使用cp命令时,如果没有加任何的选项,则复制后的文件权限和所属User、Group是会变的。另外,复制的文件的创建时间也会是cp命令的执行时间。

[fle@CentOS7 ~]$ su 
密码:
[root@CentOS7 fle]# touch fle
[root@CentOS7 fle]# ls -l fle
-rw-r--r-- 1 root root 0 10月 23 18:24 fle
[root@CentOS7 fle]# su fle
[fle@CentOS7 ~]$ cp fle fle_copy
[fle@CentOS7 ~]$ ls -l fle fle_copy
-rw-r--r-- 1 root root 0 10月 23 18:24 fle
-rw-r--r-- 1 fle  fle  0 10月 23 18:24 fle_copy

从上面的结果可以看出,使用fle账号进行复制时,文件的User和Group都是fle,这是因为cp命令希望的是用什么账号进行复制操作后,这个复制的文件应该是属于这个账号的。

(3)使用-a选项来保持完全的复制

[root@CentOS7 tmp]# cp -a /var/log/wtmp .
cp:是否覆盖"./wtmp"? y
[root@CentOS7 tmp]# ls -l /var/log/wtmp ./wtmp
-rw-rw-r--. 1 root utmp 63360 10月 23 10:11 /var/log/wtmp
-rw-rw-r--. 1 root utmp 63360 10月 23 10:11 ./wtmp

可以看到,使用-a选项可以复制文件的权限和User、Group。
对于一些没有读取权限的文件,使用-a来复制其实也是无效的:

[fle@CentOS7 tmp]$ cp -a /etc/shadow /tmp
cp: 无法打开"/etc/shadow" 读取数据: 权限不够

Tips:由于fle的身份并不能随意修改文件的拥有者与群组,与拥有者、 群组相关的, 原本fle身份无法进行的动作, 即使加上 -a 选项, 也是无法达成完整复制权限的
(4)使用-r来递归复制,用于复制目录

[fle@CentOS7 桌面]$ ls
dir  familyOfWang  familyOfZhu  file  file.txt  fle.txt  test1
[fle@CentOS7 桌面]$ tree test1
test1
├── fle
└── test3└── file1 directory, 2 files
[fle@CentOS7 桌面]$ cp -r test1 test1_copy
[fle@CentOS7 桌面]$ tree test1_copy
test1_copy
├── fle
└── test3└── file1 directory, 2 files

(5)使用-s -l来创建链接复制文件
使用-l:复制的是文件本身
使用-s:复制的是文件的链接

[fle@CentOS7 桌面]$ touch file
[fle@CentOS7 桌面]$ vim file
[fle@CentOS7 桌面]$ cp -l file file_l
[fle@CentOS7 桌面]$ cp -s file file_s
[fle@CentOS7 桌面]$ ls -l file*
-rw-rw-r-- 2 fle fle 191511 10月 23 22:38 file
-rw-rw-r-- 2 fle fle 191511 10月 23 22:38 file_l
lrwxrwxrwx 1 fle fle      4 10月 23 22:39 file_s -> file

此外,如果对链接文件在进行复制:

[fle@CentOS7 桌面]$ cp file_s file_s1
[fle@CentOS7 桌面]$ cp -l file_s file_s2
[fle@CentOS7 桌面]$ cp -d file_s file_s3
[fle@CentOS7 桌面]$ ls -l file_s*
lrwxrwxrwx 1 fle fle      4 10月 23 22:39 file_s -> file
-rw-rw-r-- 1 fle fle 191511 10月 23 22:42 file_s1
-rw-rw-r-- 3 fle fle 191511 10月 23 22:38 file_s2
lrwxrwxrwx 1 fle fle      4 10月 23 22:43 file_s3 -> file

如果要复制的是链接文件,那么如果希望复制的是链接文件本身,那就要使用-d选项了。

1.7 rm

删除文件/目录
在这里插入图片描述

[fle@CentOS7 桌面]$ ls
dir           familyOfZhu  file_l  file_s1  file_s3  test1
familyOfWang  file         file_s  file_s2  fle.txt  test1_copy
[fle@CentOS7 桌面]$ rm file*
[fle@CentOS7 桌面]$ ls
dir  familyOfWang  familyOfZhu  fle.txt  test1  test1_copy
[fle@CentOS7 桌面]$ rm test1 test1_copy
rm: 无法删除"test1": 是一个目录
rm: 无法删除"test1_copy": 是一个目录
[fle@CentOS7 桌面]$ rm -r test1 test1_copy
[fle@CentOS7 桌面]$ ls
dir  familyOfWang  familyOfZhu  fle.txt
[fle@CentOS7 桌面]$ rm test1 test1_copy
rm: 无法删除"test1": 没有那个文件或目录
rm: 无法删除"test1_copy": 没有那个文件或目录
[fle@CentOS7 桌面]$ rm -f test1 test1_copy
[fle@CentOS7 桌面]$ ls
dir  familyOfWang  familyOfZhu  fle.txt
[fle@CentOS7 桌面]$ rm -i fle.txt
rm:是否删除普通空文件 "fle.txt"?y
[fle@CentOS7 桌面]$ ls
dir  familyOfWang  familyOfZhu

1.8 mv

移动文件/目录
在这里插入图片描述

[fle@CentOS7 桌面]$ ls
dir  familyOfWang  familyOfZhu  fle  new
[fle@CentOS7 桌面]$ mv dir familyOfWang familyOfZhu fle new
[fle@CentOS7 桌面]$ tree
.
└── new├── dir│   └── file├── familyOfWang│   ├── WangDamao│   ├── WangErmao│   └── WangSanmao├── familyOfZhu│   └── ZhangXiaozhu└── fle8 directories, 2 files
[fle@CentOS7 桌面]$ mv new new2
[fle@CentOS7 桌面]$ ls
new2

要注意的是,mv是没有-r选项的。

2.可执行文件路径的变量:$PATH

指令ls完整文件名为: /bin/ls( 这是绝对路径) , 那你会不会觉得很奇怪: “为什么我可以在任何地方执行/bin/ls这个指令呢? ” 为什么我在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢? 这是因为环境变量 PATH 的帮助所致呀!

当我们在执行一个指令的时候, 举例来说“ls”好了, 系统会依照PATH的设置去每个PATH定义的目录下搜寻文件名为ls的可可执行文件, 如果在PATH定义的目录中含有多个文件名为ls的可可执行文件, 那么先搜寻到的同名指令先被执行!

①不同账号的PATH是不同的

[fle@CentOS7 桌面]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/fle/.local/bin:/home/fle/bin
[fle@CentOS7 桌面]$ su
密码:
[root@CentOS7 桌面]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/fle/.local/bin:/home/fle/bin
[root@CentOS7 桌面]# su -
上一次登录:日 10月 13 23:00:31 CST 2024pts/0 上
[root@CentOS7 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

PATH是以:作为间隔的。切换时要使用su -才不会继承fle账号的一些环境变量。
在这里插入图片描述
②PATH是可以修改的
从上面可以知道/bin对于root账户来说是属于PATH的。以ls为例,将ls命令由/bin/ls搬移到/root/ls。由于此时PATH中没有/root,所以找不到ls命令,当把/root添加到PATH中就可以使用ls了。

[root@CentOS7 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@CentOS7 ~]# mv /bin/ls /root
[root@CentOS7 ~]# ls
bash: ls: 未找到命令...
相似命令是: 'lz'
[root@CentOS7 ~]# PATH="${PATH}:/root"
[root@CentOS7 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root
[root@CentOS7 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  ls
[root@CentOS7 ~]# mv /root/ls /bin
[root@CentOS7 ~]# ls
-bash: /root/ls: 没有那个文件或目录
[root@CentOS7 ~]# exit
登出
[root@CentOS7 桌面]# su -
上一次登录:日 10月 13 23:03:30 CST 2024pts/0 上
[root@CentOS7 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg

3.从字符串中获取目录名称和文件名称

[fle@CentOS7 桌面]$ cd new2
[fle@CentOS7 new2]$ tree
.
├── dir
│   └── file
├── familyOfWang
│   ├── WangDamao
│   ├── WangErmao
│   └── WangSanmao
├── familyOfZhu
│   └── ZhangXiaozhu
└── fle7 directories, 2 files
[fle@CentOS7 new2]$ basename ./dir/file
file
[fle@CentOS7 new2]$ dirname ./dir/file
./dir

4.文件内容读取

4.1 cat与tac

在这里插入图片描述
tac就是将cat的顺序反过来。cat和tac并不常用,因为文件内容太多时不好用。

[fle@CentOS7 new2]$ touch file
[fle@CentOS7 new2]$ vim file
[fle@CentOS7 new2]$ cat file
11111111111
22222222222
33333333333
[fle@CentOS7 new2]$ tac file
33333333333
22222222222
11111111111

4.2 nl

在这里插入图片描述

4.3 more和less

more和less都是用于显示的命令,只不过可以进行分页显示。页的大小取决于终端显示窗口的大小。
more:
在这里插入图片描述
less:
在这里插入图片描述
more或者less最有用的功能就是用于搜索:

[fle@CentOS7 桌面]$ more file

在这里插入图片描述
搜索111:此时如果使用/111是找不到东西的,因为more的/是往下找,而除了目前显示的这一页,后面已经没有111了,改用less进行前向搜索:

[fle@CentOS7 桌面]$ less file

在这里插入图片描述
按下回车后:
在这里插入图片描述

4.4 head与tail

在这里插入图片描述
在这里插入图片描述
假如我想要显示 ./file 的第 4 到第 5 行呢? 答: 这个应该不算难, 想一想, 在第 4 到第 5行, 那么我取前 5 行, 再取后2行, 所以结果就是: “ head -n 5 file | tail -n 2 ”, 这样就可以得到第 4 到第 5行之间的内容了!这两个指令中间有个管线 (|) 的符号存在, 这个管线的意思是: “前面的指令所输出的讯息, 请通过管线交由后续的指令继续使用”的意思。
创建file文件并写入如下内容:
在这里插入图片描述

[fle@CentOS7 桌面]$ touch file
[fle@CentOS7 桌面]$ vim file
[fle@CentOS7 桌面]$ head -n 5 file | tail -n 2
4
5
[fle@CentOS7 桌面]$ 

4.5 od

对于可执行文件来说,使用上面的命令直接读取内容会导致乱码,这时候可以使用od命令来显示
在这里插入图片描述

5 使用touch来改变文件的时间

文件的时间有三种:
在这里插入图片描述
其中,最常关注的就是mtime。

[fle@CentOS7 桌面]$ ll /etc/man_db.conf 
-rw-r--r--. 1 root root 5171 10月 31 2018 /etc/man_db.conf
[fle@CentOS7 桌面]$ ll --time=atime /etc/man_db.conf 
-rw-r--r--. 1 root root 5171 10月 25 03:50 /etc/man_db.conf
[fle@CentOS7 桌面]$ ll --time=ctime /etc/man_db.conf 
-rw-r--r--. 1 root root 5171 5月  18 20:58 /etc/man_db.conf
[fle@CentOS7 桌面]$ date
2024年 10月 25日 星期五 21:32:39 CST

ll相当于ls -l,从上面可以看到,ll默认输出的时间是mtime。

在这里插入图片描述
在这里插入图片描述

6 文件的隐藏属性

chattr指令只能在Ext2/Ext3/Ext4的 Linux 传统文件系统上面完整生效, 其他的文件系统可能就无法完整的支持这个指令了, 例如 xfs 仅支持部份参数而已。
在这里插入图片描述
在这里插入图片描述

7.文件的搜索

7.1 指令文件的搜索

搜索指令文件lshistory的位置

[fle@CentOS7 桌面]$ which ls
alias ls='ls --color=auto'/bin/ls
[fle@CentOS7 桌面]$ which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'/bin/alias/usr/bin/which
[fle@CentOS7 桌面]$ which history
/usr/bin/which: no history in (/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/fle/.local/bin:/home/fle/bin)

上面举了三个例子:ls可以搜索到,which搜索到两个结果,history搜索不到。
之所以which有两个结果的原因:alias表示的是命令的别名,也就是说/bin/alias等价于/bin/alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde

[fle@CentOS7 桌面]$ /bin/alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde ls
/bin/ls

而history之所以搜索得不到是因为which命令搜索的是PATH,而history是bash内置的命令,所以找不到。另外,which是显示找到的第一个位置,加上-a选项后可以显示所有找到的位置。

[fle@CentOS7 桌面]$ which -a ls
alias ls='ls --color=auto'/bin/ls/usr/bin/ls
[fle@CentOS7 桌面]$ which ls
alias ls='ls --color=auto'/bin/ls

7.2 普通文件的搜索

搜索一般的命令有find、whereis、locate。效率:locate > whereis > find。
(1)whereis
在这里插入图片描述
(2)locate
在这里插入图片描述
(3)find
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/884074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言初阶:十一.代码调试技巧

❤欢迎各位大佬访问&#xff1a;折枝寄北-CSDN博客折枝寄北擅长C语言初阶,等方面的知识,折枝寄北关注python,c,java,qt,c语言领域.https://blog.csdn.net/2303_80170533?typeblog❤文章所属专栏https://blog.csdn.net/2303_80170533/category_12794764.html?spm1001.2014.300…

什么是aps排产管理软件?aps排产管理软件有什么用?最详细解释!

近几年&#xff0c;APS排产管理软件特别火&#xff0c;很多制造业企业都在谈论和使用它。不过&#xff0c;因为信息太多太杂&#xff0c;我们平时接收到的往往都是零零碎碎的介绍&#xff0c;很难全面了解它。所以&#xff0c;今天这篇文章就来给大家做个整合&#xff0c;把APS…

微信小程序25__实现卡片变换

先看效果图 实现代码如下&#xff1a; <view class"page" style"filter:hue-rotate({{rotation}}deg)"><view class"prev" catchtap"toPrev">《《《</view><view class"next" catchtap"toNext&q…

vue项目中如何在路由变化时增加一个进度条

在 Vue.js 项目中&#xff0c;使用路由&#xff08;如 Vue Router&#xff09;时&#xff0c;为了提升用户体验&#xff0c;你可能会想要在路由变化时显示一个进度条。这可以通过多种方式实现&#xff0c;其中一种流行的做法是使用第三方库&#xff0c;如 vue-loading-bar 或 n…

4款专业音频在线剪辑工具帮你开启创意之路。

音频在线剪辑工具能够为我们提供很大的便利&#xff0c;对于不管是专业的音乐制作人还是音频创作爱好者来说&#xff0c;都能借助一些音频编辑工具来充分发挥自己的创意。所以这一次&#xff0c;我要给大家介绍几个专业方便的音频剪辑工具。 1、福昕音频在线 直达链接&#x…

JK触发器(Quartus与Modelsim联合仿真)

JK触发器由于其灵活的逻辑功能&#xff0c;被广泛应用于数字电路设计中&#xff0c;如计数器、寄存器、序列信号发生器等。它可以通过改变J和K的输入来实现不同的逻辑操作&#xff0c;使得设计更加简洁高效。 在数字电子技术中&#xff0c;JK触发器的真值表是理解其工作原理和设…

Redis高频面试题

一、Redis有什么好处? 高性能:Redis是一个基于内存的数据存储系统,相比于传统的基于磁盘的数据库系统,它能够提供更高的读写性能。支持丰富的数据类型:Redis支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等,这使得它可以用于多种不同的应用场景。持久化:Re…

Javaweb 实验7 JSP内置对象II实现购物车

实验七 JSP内置对象II 目的&#xff1a; 掌握JSP内置对象的使用。理解JSP的作用域掌握session&#xff0c;application对象的使用 实验要求&#xff1a; 完成实验题目要求提交实验报告&#xff0c;将代码和实验结果页面截图放入报告中 实验过程&#xff1a; 一、结合之前…

Linux随记(十二)

一、redhat6.9 &#xff0c;sftp连接后出现2个connect close 问题描述&#xff1a; 操作系统&#xff1a;redhat 6.9 客户反馈&#xff0c;他们机器sftp连接jxx192.168.1.100后出现connection closed排查过程&#xff1a; 登录192.168.1.100 &#xff08;最开始使用普通用户…

强大的文本编辑器Notepad++8.4.6 最新版

Notepad最新版是一款多功能的代码编辑工具。Notepad官方版支持27种编程语言&#xff0c;涵盖C、C 、Java 、C#,、XML、 HTML,、PHP、python等等&#xff0c;能够帮助程序员提高编辑效率。Notepad软件支持python与sql代码高亮功能&#xff0c;并且免费开源&#xff0c;能够完美地…

【测试平台】打包 子节点android环境配置

背景 本文记录不是安卓Gradle打包&#xff0c;因为我们google play提审&#xff0c;为了规避跟下架包的相似度避免马甲包封号&#xff0c;使用混淆逻辑。 打包环境部署 申请对应虚拟机会有两个账号root和admin&#xff0c;主要避免root账号权限过高造成脚本误操作。这里面问题…

免杀对抗—DLL劫持白加黑隐写分离EDRSyscall-hook

前言 今天讲点比较高端的东西—DLL反射注入&#xff0c;首先什么是DLL文件&#xff0c;简答来说就是程序为了实现某个功能而调用的文件。举个例子&#xff0c;某个代码想要实现某个功能是不是会调用一些封装好的函数&#xff0c;exe同样如此&#xff0c;想要实现某个功能就会调…

uniapp推送配置流程

Dcloud Dcloud注册账号 个推 了解即可 注册个推账号 ios配置流程 需配置含有推送的描述文件以及p8证书 配置推送证书 ios证书配置报技术错误&#xff08;参数错误&#xff09; TeamID-苹果开发者账号唯一的ID 安卓需配置多厂商 小米手机需要配置小米厂商 华为手机则需…

zookeeper全系列学习之分布式锁实现

文章目录 前言一、分布式锁的通用实现思路二、ZK实现分布式锁的思路三、ZK实现分布式锁的编码实现1、核心工具类实现2、测试代码编写线程安全问题复现使用上面封装的ZkLockHelper实现的分布式锁 优点缺点 总结 前言 就像上篇文章zookeeper全系列学习之统一配置获取说的&#x…

Uni-App-02

条件编译 条件编译概念 不同的运行平台终归有些专有的特性&#xff0c;无法实现跨平台完全兼容&#xff0c;例如&#xff1a;微信小程序导航栏右上角的关闭图标。 uni-app提供了一种“条件编译”机制&#xff0c;可以针对特定的平台编译执行特定的代码&#xff0c;否则不执行。…

【ArcGISPro】制作简单的ArcGISPro-AI助手

【python】AI Navigator的使用及搭建本机大模型_anaconda ai navigator-CSDN博客 【Python】AI Navigator对话流式输出_ai大模型流式输出效果(打字效果) python-CSDN博客 【C#】调用本机AI大模型流式返回_怎么实现调用本地大模型时实现流式输出-CSDN博客 【ArcGISPro】宣布推…

springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38819)

刚解决Spring Framework 特定条件下目录遍历漏洞&#xff08;CVE-2024-38816&#xff09;没几天&#xff0c;又来一个新的&#xff0c;真是哭笑不得啊。 springboot 修复 Spring Framework 特定条件下目录遍历漏洞&#xff08;CVE-2024-38816&#xff09;https://blog.csdn.ne…

可编辑97页PPT | 制造企业数字化转型战略咨询及IT总体规划方案

荐言分享&#xff1a;制造企业数字化转型是当前市场环境下的必然趋势&#xff0c;旨在通过引入先进的信息技术&#xff0c;优化业务流程&#xff0c;提升运营效率&#xff0c;增强客户体验&#xff0c;实现可持续发展。这一转型过程涉及多个方面&#xff0c;需要综合考虑企业战…

计算机视觉中的点算子:从零开始构建

Hey小伙伴们&#xff01;今天我们要聊的是一个非常基础但极其重要的计算机视觉技术——点算子&#xff08;Point Operators&#xff09;。点算子主要用于对图像的每个像素进行独立的处理&#xff0c;比如亮度调整、对比度增强、灰度化等。通过这些简单的操作&#xff0c;我们可…

001-Kotlin界面开发之Jetpack Compose Desktop学习路径

Compose Desktop学习之路 学习过程 理解Kotlin的基本语法 Compose Desktop采用Kotlin构建&#xff0c;因此对Kotlin的基本语法有很好的理解是必不可少的。你可以从官方的Kotlin文档开始。 用一句话概括&#xff0c;Kotlin是一种现代的、静态类型的编程语言&#xff0c;它结合…