通过ls –al命令查看系统根目录下文件的属性,并任意选取一行内容,说明其属性表示的七个字段的含义。然后查找/home目录下所有属于xxx用户的文件,并将查找的文件复制到root的root_xxx目录中。(其中,xxx代表新建的用户名,请自己建立)
时间: 2024-05-06 09:22:07 浏览: 14
ls -al命令查看系统根目录下文件的属性可以得到如下输出:
```
drwxr-xr-x 22 root root 4096 Nov 8 09:24 .
```
该输出的含义为:
- 第一个字段表示文件类型和权限,以d开头表示是目录,后面三组字符分别代表文件所有者、文件所属组和其他用户对文件的读、写、执行权限。
- 第二个字段表示硬链接数目。
- 第三个字段表示文件所有者的用户名。
- 第四个字段表示文件所属组的组名。
- 第五个字段表示文件的大小,单位为字节。
- 第六个字段表示文件最近修改的时间。
- 最后一个字段表示文件名。
假设需要查找/home目录下所有属于xxx用户的文件,可以使用如下命令:
```
find /home -user xxx
```
其中,/home表示要查找的目录,-user xxx表示要查找的文件所属用户为xxx。如果要将查找到的文件复制到root的root_xxx目录中,可以使用如下命令:
```
mkdir /root/root_xxx
find /home -user xxx -exec cp {} /root/root_xxx/ \;
```
其中,mkdir /root/root_xxx用于创建root_xxx目录,-exec cp {} /root/root_xxx/表示将查找到的文件复制到/root/root_xxx目录中。
相关问题
linux 查找匹配文件并循环用ls-l查看其属性命令
可以使用以下命令查找匹配文件并循环用 `ls -l` 查看其属性:
```bash
for file in $(find /path/to/search -name "match_pattern"); do
ls -l "$file"
done
```
其中,
- `/path/to/search` 是你要搜索的目录。
- `match_pattern` 是你要匹配的文件名模式。
- `find` 命令会在指定目录及其子目录中查找匹配的文件,并将它们的路径作为输出。
- `$(...)` 将 `find` 命令的输出作为循环的输入。
- `ls -l "$file"` 会显示文件的详细属性,包括权限、所有者、大小等等。`$file` 是循环的变量,表示当前处理的文件路径。如果文件名包含空格或其他特殊字符,需要将变量用双引号括起来,以避免解释器将其解释为多个参数。
按年份统计输出ls -al命令下文件和目录的总大小
可以使用 ls 命令结合 awk 命令来按年份统计输出文件和目录的总大小,命令如下:
```
ls -al | awk 'BEGIN {year = ""} {if ($8 ~ /^[0-9]{4}$/) {year = $8} sum[year] += $5} END {for (y in sum) {print y, sum[y]/1024/1024 "MB"}}'
```
其中,ls -al 命令用于列出当前目录下所有文件和目录的详细信息;$8 表示第八个字段,即文件或目录的年份;$5 表示第五个字段,即文件或目录的大小;$8 ~ /^[0-9]{4}$/ 表示判断第八个字段是否为四位数字,如果是,则认为该行记录是文件或目录的信息,记录该行信息所属的年份;sum[year] += $5 表示将该行记录所属年份的大小累加到数组 sum 中;END 为 awk 提供的特殊模式,表示在处理完整个文件后执行的操作;for(y in sum) 表示遍历数组 sum,y 为数组元素的键值,即年份;sum[y]/1024/1024 "MB" 表示将该年份下的文件和目录总大小从字节转换成 MB,并输出。