linux shell编程,利用for循环将当前目录下的指定扩展名(由输入决定)文件转移到指定的目录下,并按照文件大小排序,并显示移动后指定目录的内容。
时间: 2024-04-13 11:29:56 浏览: 131
您可以使用以下Shell脚本来实现将当前目录下指定扩展名的文件转移到指定目录,并按文件大小排序,最后显示指定目录的内容:
```shell
#!/bin/bash
echo "请输入要转移的文件扩展名(例如:txt):"
read ext
echo "请输入目标目录:"
read dest_dir
# 创建目标目录
mkdir -p $dest_dir
# 查找当前目录下指定扩展名的文件,并移动到目标目录
for file in *.$ext
do
mv "$file" "$dest_dir"
done
# 进入目标目录
cd $dest_dir
# 按文件大小排序并显示内容
ls -Shl
```
您可以将以上代码保存为一个.sh文件,然后在终端中执行该文件。程序会要求您输入要转移的文件扩展名和目标目录,然后会将当前目录下的指定扩展名的文件移动到目标目录,并按照文件大小排序后显示目标目录的内容。
希望能对您有所帮助!如果您有任何其他问题,请随时提问。
相关问题
Linux中编写 bshell编程,设计一个shell程序,给当前目录下的全部文件名增加.old扩展名,如果遇到目录就退出循环。给出实现代码,并且给出测试验证的代码。
以下是一个简单的bshell程序,可以将当前目录下的所有文件名增加.old扩展名,遇到目录就退出循环:
```bash
#!/bin/bash
for file in *
do
if [ -d "$file" ]; then
break
fi
mv "$file" "${file}.old"
done
```
测试验证的代码可以这样写:
1. 首先,在终端中进入到需要测试的目录下。
2. 然后,使用touch命令创建一些测试文件,例如:
```bash
touch file1 file2 file3
mkdir dir1
touch dir1/file4 dir1/file5
```
3. 最后,运行bshell程序:
```bash
./bshell
```
程序会将file1、file2和file3的文件名分别改为file1.old、file2.old和file3.old,然后退出循环,因为遇到了目录dir1。dir1下的文件不会被修改。
阅读全文