shell统计目录下的所有目录

查询/data下有多层目录

目的

要递归遍历 /data 目录下的所有子目录,并查看每个目录的创建用户,可以使用 find 命令结合 stat 命令来实现。

一、以下是在 CentOS 上实现的示例命令:

find /data -type d -exec stat -c "%n:%U" {} \;

这个命令将递归遍历 /data 目录及其子目录,并对每个找到的目录使用 stat 命令查看其创建用户。输出格式为 目录路径:创建用户

可以将上述命令保存到一个脚本文件(例如 directory_info.sh)中,然后通过运行脚本来生成结果。

#!/bin/bash
output_file="/path/to/output/file.txt"
find /data -type d -exec stat -c "%n:%U" {} \; > "$output_file"

确保将 “/path/to/output/file.txt” 替换为希望保存结果的实际文件路径。然后,通过运行以下命令来执行脚本并生成结果文件:

chmod +x directory_info.sh
./directory_info.sh

执行完毕后,将在 file.txt 文件中找到递归遍历 /data 目录下的所有子目录以及其创建用户的信息。可以将该文件复制到其他机器上,以便创建相同的目录结构并设置相同的用户权限。

二、根据之前生成的文件夹和创建用户信息文件,可以使用以下脚本批量创建文件夹并更改用户:

#!/bin/bash
input_file="/path/to/input/file.txt"
while IFS=: read -r folder owner; do
  \# 创建文件夹
  mkdir -p "\$folder"
  \#更改文件夹的所有者
  chown "\$owner" "\$folder"
done < "\$input_file"

确保将 “/path/to/input/file.txt” 替换为包含之前生成的文件夹和创建用户信息的实际文件路径。
保存脚本文件(例如 folder_creation.sh),然后通过以下命令运行脚本:

chmod +x folder_creation.sh
./folder_creation.sh

脚本将读取文件中的每一行,其中每行的格式为 目录路径:创建用户,然后使用mkdir -p命令创建相应的文件夹,并使用 chown 命令更改文件夹的所有者为指定的用户。

执行完毕后,文件夹将被批量创建,并且其所有者将被相应更改为指定的用户。
请确保以具有足够权限的用户身份运行该脚本。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值