shell脚本awk把当前目录下大小超过10k的文件目录移至/tmp下

 

1.把当前目录下大小超过10k的文件目录移至/tmp下

 

#!/bin/bash
#qq:2575815569
for i in `ls -l |awk '{if($5>10){print $9}}'`
do
mv $i /tmp
echo "done!"
done

 

注释:

ls -l 显示文本目录及长度if 如果  $5第五列  print $9 打印第9列print 打印>大于10mv 移动
for i in  定义变量i为do 然后done 结束echo 输出到屏幕o(^▽^)oo(^▽^)oo(^▽^)o

 

 

 

<think>好的,我现在需要帮助用户解决一个关于Shell脚本的问题,用户想查看当前目录下的文件。首先,我得回想一下用户之前的问题,之前他询问过如何移动测试目录到指定位置,现在这个新问题可能是在他处理文件操作时,需要先确认目录中的内容是否正确,所以需要查看当前目录下的文件。 首先,用户的需求是编写一个Shell脚本来查看当前目录下的文件。我需要确定有哪些命令可以实现这个功能。常见的命令有ls、find、tree,可能还有使用通配符的方法。每个命令有不同的选项和输出格式,需要根据用户的具体需求来选择。 接下来,我需要考虑用户可能的深层需求。用户可能不仅仅是想列出文件,可能需要详细的文件信息,比如权限、大小、修改时间,或者递归列出子目录的内容。也有可能用户希望脚本能够处理特定类型的文件,或者进行某种过滤。不过,用户当前的询问比较基础,可能只需要一个简单的列表。 然后,我应该分步骤来讲解不同的方法,并说明每个方法的特点。例如,ls是最常用的命令,但默认情况下可能不会显示隐藏文件,而加上选项如-l、-a可以改变输出。find命令可以递归列出文件,适合需要处理子目录的情况。tree命令则以树状结构展示,更直观但可能不在所有系统上预装。 还需要注意脚本的健壮性,比如处理不存在的目录或者权限问题。但在基本示例中,可能不需要复杂的错误处理,但高级示例中可以加入这些内容,帮助用户提升脚本的可靠性。 另外,用户可能对输出的格式有特定要求,比如只显示文件名,或者包含路径。这时候需要展示不同的选项,比如ls -1或者使用循环结构来逐个处理文件。 最后,应该总结不同方法的适用场景,帮助用户根据实际需求选择最合适的命令。例如,简单列表用ls,详细列表用ls -l,递归列表用find或ls -R,树状结构用tree。同时提醒用户注意命令的可用性,比如tree可能需要安装。 在组织回答时,要结构清晰,分步骤讲解,确保用户能够逐步理解和应用。可能需要提供多个示例代码,并解释每个例子的作用和输出结果,这样用户可以根据自己的需求进行调整。</think>我将为您详细讲解如何用Shell脚本查看当前目录文件,并提供多种实现方式: 一、基础实现方案 1. 基本列表脚本 ```bash #!/bin/bash echo "当前目录文件列表:" ls ``` 2. 带详细信息的版本 ```bash #!/bin/bash echo "详细文件列表:" ls -l # 显示权限、所有者、大小等信息 ``` 二、进阶实现方案 1. 递归列出子目录 ```bash #!/bin/bash echo "递归文件列表:" ls -R # 递归显示所有子目录内容 ``` 2. 过滤特定文件 ```bash #!/bin/bash echo "文本文件列表:" ls *.txt # 只显示txt扩展名文件 ``` 三、专业级实现方案 1. 带错误处理的版本 ```bash #!/bin/bash target_dir=$(pwd) if [ -d "$target_dir" ]; then echo "文件列表:" ls -lh --group-directories-first # 目录优先显示 else echo "错误:目录不存在" >&2 exit 1 fi ``` 2. JSON格式输出(需要jq工具) ```bash #!/bin/bash ls -l | awk 'BEGIN{print "["} NR>1{printf " {\"name\":\"%s\",\"size\":\"%s\"},\n", $9, $5} END{print "]"}' | jq . ``` 四、方法对比分析 1. 常用命令对比: - `ls`:基础列表工具 ```bash ls -lah # 组合参数:显示所有文件(含隐藏文件)、人类可读大小 ``` - `find`:精确查找工具 ```bash find . -maxdepth 1 -type f # 仅查找当前目录文件 ``` - `tree`:树状展示(需安装) ```bash tree -L 2 # 显示2级目录结构 ``` 2. 输出格式示例: ``` 普通列表: file1.txt dir1 script.sh 详细列表: -rw-r--r-- 1 user group 256K Jun 1 10:00 file1.txt drwxr-xr-x 2 user group 4.0K Jun 1 09:00 dir1 JSON格式: [ { "name": "file1.txt", "size": "256K" }, { "name": "dir1", "size": "4.0K" } ] ``` 五、最佳实践建议 1. 日常使用推荐组合: ```bash ls -lht --color=auto # 按时间排序+人类可读大小+彩色输出 ``` 2. 脚本开发建议: - 总在脚本开头添加 `#!/bin/bash` - 对重要操作添加错误检查: ```bash cd target_dir || { echo "目录切换失败"; exit 1; } ``` 3. 路径处理技巧: ```bash # 获取绝对路径 current_dir=$(realpath "$0") echo "当前脚本路径:$current_dir" ``` 六、调试技巧 1. 显示执行过程: ```bash #!/bin/bash set -x # 开启调试模式 ls -l set +x # 关闭调试模式 ``` 2. 测量执行时间: ```bash time ls -R > /dev/null ``` 七、扩展应用场景 1. 查找最新文件: ```bash ls -t | head -n 5 # 显示最新的5个文件 ``` 2. 按大小排序: ```bash ls -lS # 从大到小排序 ``` 3. 组合查找: ```bash ls -l *.txt | awk '{sum+=$5} END{print "总大小:" sum}' ``` 八、注意事项 1. 隐藏文件处理: ```bash ls -a # 显示以.开头的隐藏文件 ``` 2. 特殊字符处理: ```bash ls --escape # 显示特殊字符转义 ``` 3. 权限问题: ```bash sudo ls /root # 查看需要权限的目录 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为互联网铺一条公路

你的支持,我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值