首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

根据文件类型将文件夹移动到相应文件夹的Shell脚本

可以通过以下方式实现:

代码语言:txt
复制
#!/bin/bash

# 首先获取当前文件夹路径
current_path=$(pwd)

# 定义要处理的文件夹路径
target_folder=$current_path/target_folder

# 定义目标文件夹的路径
image_folder=$current_path/images
document_folder=$current_path/documents
video_folder=$current_path/videos
audio_folder=$current_path/audios
other_folder=$current_path/others

# 如果目标文件夹不存在,则创建
mkdir -p $image_folder
mkdir -p $document_folder
mkdir -p $video_folder
mkdir -p $audio_folder
mkdir -p $other_folder

# 遍历目标文件夹中的所有文件
for file in $target_folder/*; do
    # 判断文件类型
    if [[ -f "$file" ]]; then
        file_extension="${file##*.}"

        # 根据文件类型移动到相应文件夹
        if [[ $file_extension =~ ^(jpg|jpeg|png|gif)$ ]]; then
            mv "$file" "$image_folder"
        elif [[ $file_extension =~ ^(doc|docx|pdf|txt)$ ]]; then
            mv "$file" "$document_folder"
        elif [[ $file_extension =~ ^(mp4|avi|mov)$ ]]; then
            mv "$file" "$video_folder"
        elif [[ $file_extension =~ ^(mp3|wav)$ ]]; then
            mv "$file" "$audio_folder"
        else
            mv "$file" "$other_folder"
        fi
    fi
done

上述Shell脚本可以实现根据文件类型将目标文件夹中的文件移动到对应文件夹的功能。具体步骤如下:

  1. 首先获取当前文件夹路径。
  2. 定义要处理的目标文件夹路径,即待移动文件的所在文件夹。
  3. 定义各个文件类型的目标文件夹路径。
  4. 使用mkdir -p命令创建目标文件夹,其中-p选项表示如果目标文件夹不存在,则创建它。
  5. 使用循环遍历目标文件夹中的所有文件。
  6. 使用[[ -f "$file" ]]条件判断语句判断当前遍历到的文件是否为普通文件。
  7. 如果是普通文件,则使用${file##*.}获取文件扩展名。
  8. 使用正则表达式判断文件类型,并将文件移动到相应的目标文件夹中。
  9. 循环结束后,所有文件根据其类型将被移动到对应的目标文件夹中。

请注意,上述Shell脚本只适用于Linux或类Unix系统。在Windows系统中,需要使用类似的脚本,并做相应的调整。

推荐的腾讯云相关产品:

  1. 腾讯云对象存储(COS):可用于存储各类文件,具备高可用性和可靠性。产品介绍链接:https://cloud.tencent.com/product/cos
  2. 腾讯云云服务器(CVM):提供弹性计算能力,可用于运行脚本和执行文件操作。产品介绍链接:https://cloud.tencent.com/product/cvm
  3. 腾讯云函数计算(SCF):可用于运行事件驱动的函数,适合用于处理文件变动等触发事件。产品介绍链接:https://cloud.tencent.com/product/scf

请注意,上述腾讯云产品仅作为推荐,实际使用时需根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Shell 命令行,写一个自动整理 ~Downloads 文件夹下文件脚本

Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件脚本 在 mac 或者 linux 系统中,我们浏览器或者其他下载软件下载文件全部都下载再 ~/Downloads/ 文件夹下面...日积月累,我们文件会越来越多。手工整理这些文件是比较繁琐工作,于是,我就思考,我能不能用 shell 来自动整理这些下载文件。 说干就干。...为了避免破坏我本地文件,我自己搞了一个虚拟机跑了一个 centos 然后写下了如下脚本。 第一版代码(处理文件名带空格文件会出错) #!...{HOME}/Downloads/" # 准备这些文件处理到哪里去 filesFinder="${HOME}/Documents/Office Files/" # 分辨文件类型,并给出放到哪里去建议....*" | awk -F "/" '{print $NF}'); do mvFile $i $i done # 分隔符设置为默认,以免影响后面的程序 IFS=$OLD_IFS 补充小结 我先前没有考虑文件夹或者文件包含空格情况

2.1K100
  • shell脚本实现 压缩Linux下某一目录下所有文件夹至单独压缩包

    当我们需要上传文件至某个网站时候,往往在线上传是要求文件大小,而且之能传压缩包,这个时候把多个文件压缩为一个文件就很有必要了,尤其是当你需要压缩多个文件时候,写一个自动脚本更有必要了,好在这是在Linux...注意,如果文件夹名字里面有空格,是不能正确压缩! 老规矩直接上代码,随后解释: #!...3 :tar -zvcf $dir\.tar.gz $dir; 直接打包 附: [dirname]:取得脚本文件所在目录。 [basename]:用于去掉文件名目录和后缀。 ?...示例一: # /usr/bin为获取到目录 [root@local ~]# dirname /usr/bin/sort /usr/bin 示例二: # 如无/则获取当前目录

    6.9K10

    Folder Tidy for mac(Mac桌面文件整理工具)v2.9免激活版

    Folder Tidy Mac版是一款Mac桌面文件整理工具,用户只需要选择需要清理文件夹,眨眼功夫,所有的文件就会按照类别(照片、音乐、文档等等)分别整理好,并得到一个名为“x月x日x时桌面”这样目录...图片Folder Tidy for mac(Mac桌面文件整理工具)Folder Tidy mac版功能介绍1、通过混乱文件移动到有组织文件夹中来整理任何文件夹(包括桌面)。...2、使用简单但功能强大内置规则,一键式整理。3、创建高级自定义规则以完全按照您方式整理文件夹。4、如果你改变主意,在整洁结束时所有东西都回去。...Folder Tidy mac版软件特征根据文件类型和/或规则将文件组织到子文件夹中。使用众多内置规则之一,或者根据谓词创建强大规则。选择清理什么类型文件。在清理过程中选择要忽略文件和文件夹。...选择清理文件和文件夹位置。忽略别名,文件夹和任何带有标签选项。撤消清理能力。国际上超过600个五星评级。

    85530

    有一个文件夹下有很多文件,每一个文件上都有年月日时,现在要根据这个年月日时创建文件夹,并且这些文件迁移到对应文件夹下,如何处理

    1 问题 有一个文件夹下有很多文件,每一个文件上都有年月日时,现在要根据这个年月日时创建文件夹,并且这些文件迁移到对应文件夹下,如何处理 Java 遍历一个文件夹,获取到后缀是tar.gz 压缩包文件...,压缩包名称是TR_2023060200.tar.gz,然后获取到2023060200这个格式,在当前目录下生成这个时间文件夹,然后将对应压缩包迁移进去这个新建时间文件夹 2 实现 public...//File file = new File("D:\\059\\data\\RAIN_GRIB"); String folderPath = "D:\\source"; // 文件夹路径

    16810

    Hazel轻松管理文件-微信聊天文件自动分类存放

    可通过聚焦搜索(command+space)进行搜索 具体要实现功能 当收到微信朋友发送文件(Excel、Word、PDF等等文件)时,自动保存到相应目录,文件类型可通过变量filterRules进行设置...Hazel文件夹规则 重点讲一下MessageTemp这个文件夹规则 首先是如何让Hazel知道,微信里有朋友发了文件给你,这里只需要监听微信聊天文件缓存文件夹即可...,触发一个Automator 工作流,进行文件移动,为啥这里不能由Hazel直接移动,因为在MessageTemp目录下,是存在很多子文件夹,聊天文件在某一个子文件夹,Hazel不能确定具体是哪一个新增文件需要移动...然后获取该文件夹OpenData和File目录所有文件,然后执行filterRules规则,过滤掉不需要处理文件 流程3:文件转化成文件路径(现在看来有点多余了) 流程4:获取变量chooseFromList...值 流程5:让用户选择目标目录 流程6:得到用户选择目标目录和所有待处理文件,进行文件复制 流程2对应AppleScript脚本如下: on run {input, parameters} --

    1.5K30

    苹果电脑桌面怎么清理 苹果电脑桌面文件太多怎么办

    右击图标,可以对相应文件进行“快速操作”。...该软件采用了独特磁盘扫描算法,能够指定路径中文件全部扫描出来(包括那些隐藏在系统深处文件)。CleanMyMac文件列表采用了动态视图,用户可以根据图标大小,快速判断文件和文件夹体积。...Mac系统就会按照文件种类,对桌面上文件进行分类并对齐。图13:按文件种类整理然后,按照文件类型,在桌面上新建文件夹(选中文件夹后,按Enter键,可以对文件夹进行重命名)。...将相同类型文件,拖拽到对应文件夹中即可。图14:根据文件类型新建文件夹2.清除桌面大型文件和旧文件在CleanMyMac主界面中,点击“大型和旧文件”。...被删除文件,无法通过数据软件进行找回。移动到废纸篓:删除文件移动到废纸篓中,可以在废纸篓中将文件恢复到原来位置。移至文件夹:相当于更改文件路径,文件移动到指定文件夹中。

    70110

    Vim 后门 | Linux 后门系列

    compiler 目录:包含编译器配置文件 doc 目录:包含文档文件 ftplugin 目录:包含文件类型相关插件脚本 indent 目录:包含文件类型相关缩进脚本 keymap 目录:包含键盘映射脚本...这些文件可以根据文件类型自动加载,并为特定类型文件提供相关设置和命令。...直接执行 vim 通过对比,可以得出,自动加载脚本如下(第8条和第12条根据打开文件类型而定) vimrc debian.vim 在 vimrc 中默认引用 syntax/syntax.vim...是 filetype.vim 这个文件定义了文件类型检测规则和相关设置,用于根据文件类型自动加载相应配置和插件 是 scripts.vim 这个文件包含一些 Vim 脚本帮助函数和设置,用于支持...,用于为特定文件类型自动加载相应插件和配置 打开部分文件自动加载 indent.vim 这个文件包含了一些自动缩进设置,用于根据文件类型自动设置正确缩进规则 是 syntax/nosyntax.vim

    67651

    Linux 下回收站机制

    而是通过rm 命令删除文件.文件一般无法找回, 就是这种机制,每次带来都是巨大教训....为此这里实现一个简易回收站机制: 功能: rm 删除文件备份到指定文件夹 每天定时清理  步骤1 写个shell脚本替换rm命令,或者在需要删除文件时候使用mv命令文件移动到回收站....家目录(~)新建一个隐藏文件夹: mkdir .trash 家目录(~)新建tool文件夹,存放remove.sh, 脚本内容如下 : 脚本主要是把文件根据当前日期重命名,移动到.trash TRASH_DIR...$STAMP done 步骤2 实现rm 命令和remove.sh 脚本绑定  修改~/.bashrc, 增加一行 alias rm="sh ~/tools/remove.sh" alias命令用来设置指令别名...shell script脚本 编辑crontab文件中条目: crontab -e 添加: 0 0 * * * rm -rf ~/.trash/* .表示每天0点0分删除 .tarsh文件中内容

    3.1K50

    知识库Wiki-DokuWiki

    2”移动到“测试方案”目录下 点击“测试文档2”,页面右侧点击页面重命名 弹出重命名框 “测试计划”修改为“测试方案”,之后点击重命名 “测试文档2”已经移动到“测试方案”目录下 7.4.2...、方式二 例如:“测试计划”目录里“第二次执行”移动到“测试报告/测试结果”目录下 进入管理页面,点击“页面移动/重命名......”...,转换之后目录 dist目录里是可执行文件 注意:如果转换文件类型是文稿格式,可执行以下命令转换 文稿变为可执行文件命令 执行命令sudo chmod u+x /Users/wangmeng/...Downloads/WikiCreateDirectory 双击运行,就可以使用了 例如:运行脚本,创建demo目录 页面可以看到利用脚本创建新目录 10.3、文件转换为app 仅限于Mac上...脚本转换为.app格式文件,每次执行时,双击即可 1、安装 pip3 install py2app 2、打开py所在文件夹 3、输入命令,在当前文件夹生成setup.py文件 py2applet

    2.3K20

    解决bash syntax error near unexpected token from

    本篇博客文章介绍如何解决这个错误。原因分析该错误通常是因为在Bash脚本中存在语法错误或错误引号使用方式导致。以下是一些常见可能原因:在脚本中使用了未正确闭合引号。...最后,我们通过一个循环每个文件行数累加到 ​​total_lines​​ 变量中,并最终输出总行数。 请注意,示例代码中路径 ​​./path/to/folder​​ 需要根据实际情况进行修改。...同时,还可以根据需求进行其他逻辑处理,比如过滤特定文件类型、计算每个文件平均行数等。...什么是Bash脚本Bash脚本是一种用于编写命令行脚本脚本语言,它是基于GNU Bash(GNU Bourne Again SHell扩展。...Bash脚本特点交互性:Bash脚本可以与用户进行交互,根据用户输入做出相应操作,例如提示用户输入参数、询问用户是否继续等。

    70830

    ADB驱动

    如果是32位系统选择x86文件夹安装驱动,如果是64位系统选择amd64文件。 或者电脑下载豌豆夹客户端,根据提示安装。 ADB包使用:解压ADB文件夹ADB文件夹放到C盘根目录下。...2.安装软件   adb install adb install :这个命令指定apk文件安装到设备上 adb install  -r :如果加-r参数会覆盖原来安装软件并保留数据...进入设备或模拟器shell   adb shell 通过上面的命令,就可以进入设备或模拟器shell环境中,在这个Linux Shell中,你可以执行各种Linux命令,另外如果只想执行一条shell...命令,可以采用以下方式:   adb shell [command] 如:adb shell ls列出当前目录下内容。...recovery adb reboot bootloader  重新启动到bootloader 9.写脚本常用几个命令 adb wait-for-device 等待设备响应         常用于安装之类脚本

    3.7K100

    复习 - 文件上传

    > IIS IIS6.0解析漏洞 影响版本:IIS 5.x ~ 6.0 目录解析漏洞:在网站下建立xxx.asp文件夹,该文件夹内任何后缀文件都将被IIS当做asp脚本文件来解析并执行 文件解析漏洞:...Version<=2.42:在处理PHP上传地方未对Media类型进行上传文件类型控制,导致用户上传任意文件。...,创建1.asp文件夹,然后再到该文件夹下上传一个图片webshell文件,获取其shell。...列目录 fckeditorFCKeditor/editor/fckeditor.html 根据XML返回信息查看网站目录 获取当前文件夹 浏览E盘文件 WAF绕过 检验扩展名:修改后缀,如、等绕过 检验文件头...:伪造文件头,在一句话木马前面加入GIF89a,然后木马保存为图片格式,如.jpg/.png/.gif 检验文件类型:修改 文件包含过WAF:在不含恶意代码脚本文件中,通过文件包含引入含有恶意代码但后缀为图片格式文件

    1.3K30

    统计文件夹下某类文件大小脚本

    由此产生了一个需求,我需要统计 pubic 文件夹下(包括子文件夹)图片占用空间大小。 统计脚本 经过几个小时编写,终于完成了这个统计脚本 count_file.sh 。...支持统计某个文件夹下(包含子文件夹)某一类文件大小,或者除某一类文件外其他文件大小。 #!..." -t : 需要查找文件类型" echo " -x : 需要排除文件类型" exit 0 } if [[ $# == 0 ]] || [[ "$1" == "-...各位自己有独立博客小伙伴,有没有图床服务提供,欢迎给我些指导。 参考资料 查找多个指定文件或者排除某类文件 Shell 脚本如何输出帮助信息?...给你shell脚本写一个--help文档 编写可接受选项和参数shell脚本 getopts 使用

    1.3K20

    利用Office文档结合社会工程学手段欺骗用户执行恶意代码

    初始化(加载)Shell.Exporer.1对象时,ShellLink结构将被解析为常规LNK文件。然后,该对象从ShellLink 获取ID列表,并使用它来导航(浏览)到提供文件,文件夹或网站。...某些文件类型(如EXE文件)触发另一个警告对话框。但是通过使用其他可执行文件类型可以轻松避免此对话框。 ? 保护模式IE被禁用用于控件,这确实会阻止显示其他对话框——如UAC对话框。...Poc 下面的PowerShell脚本尝试创建包含嵌入式Internet Explorer对象Word文档。该脚本使用Packager对象创建一个嵌入文件对象,单击该对象触发文件下载功能。...显示一个警告对话框,但此对话框与其他警告对话框略有不同,如图6所示。此警告对话框对于所有文件类型都是相同。 ? Forms.HTML:Image.1接受一个src,可用于配置文档中显示图像。...Poc 以下PowerShell脚本可用于创建具有嵌入Forms.HTML:Image.1对象Word文档,单击该对象导致计算器打开。

    2.3K30

    Shell脚本入门

    介绍 Shell脚本可用于运行多个命令,广泛适用于困难参数单个命令,或用于分发工作更友好用户界面。本质上讲,它可以通过自动化来简化您不必手动完成操作。...设置文件夹 在开始编写shell脚本之前,最好给其指定一个文件夹。对于个人脚本,建议您在~/bin中执行此操作。...例如,如果您要将大量文件移动到~/backup文件夹,则可以设置一个脚本,该脚本只会丢弃您指定任何内容。...编写好shell脚本不是单纯硬编码。在此示例范围内,如果要更改备份文件夹,只需更改脚本第一行即可轻松完成。一旦您现在习惯了,它会在以后会有很大帮助。...您现在可以通过运行来测试脚本: filebackup file1 file2 您可以根据需要为该行添加任意数量文件,并将它们全部复制到备份文件夹中。 结论 Shell脚本在Linux系统上无处不在。

    60710

    机器学习程序猿在Linux猩球生存指南

    Linux猩球 一个小程序猿,在一场飞行意外中,坠落到Linux猩球,与家乡Win猩球/Mac猩球绚丽多彩不同是:Linux猩球大部分时间都是处于黑暗之中[命令行/Shell界面],因此,大多数时候他只能跟这个黑色世界进行交互...Shell世界生存口诀 0.急速解渴快捷键(~高频) // 光标回到行首[告别手指抽筋方向键] control+a // 光标回到行末 control+e // 删除命令行整段命令 control+...] gg: 光标移动到文档开头 G: 光标移动到文档末尾 $: 光标移到移到本行尾 0: [数字] 光标移到本行行首 1.操作文件夹 pwd //显示当前所处路径 cd 文件夹名称 /...文件夹权限 文件夹权限是一个比较重要概念,关系到你是否有权利操作这个文件夹,关于权限修改可学习chmod等命令。...PID,根据PID我们可以终止某个后天运行脚本 kill -9 9208 //杀掉PID=9208进程 ?

    1K40

    网站安全维护公司对渗透测试详情

    哈喽大家好,近期我们Sine安全对客户平台进行渗透测试时候,发现有一些命令执行漏洞测试语句和函数,导致服务器被提权被入侵,上一节提到XSS跨站脚本攻击检测方法,本章来总和一下脚本执行命令详细检测手段...防御 不使用时禁用相应函数 尽量不要执行外部应用程序或命令 做输入格式检查 转义命令中所有shell元字符 shell元字符包括 #&;`,|*?~^()[]{}$\ 3.6....Magic检测绕过 有的站点使用文件头来检测文件类型,这种检查可以在Shell前加入对应字节以绕过检查。几种常见文件类型头字节如下表所示 3.7.1.3....后缀绕过 部分服务仅根据后缀、上传时信息或Magic Header来判断文件类型,此时可以绕过。 php由于历史原因,部分解释器可能支持符合正则 /ph(p[2-7]?|t(ml)?)...防护技巧 使用白名单限制上传文件类型 使用更严格文件类型检查方式 限制Web Server对上传文件夹解析

    1.6K00

    网站安全防护公司渗透测试执行命令漏洞

    哈喽大家好,近期我们Sine安全对客户平台进行渗透测试时候,发现有一些命令执行漏洞测试语句和函数,导致服务器被提权被入侵,上一节提到XSS跨站脚本攻击检测方法,本章来总和一下脚本执行命令详细检测手段...防御 不使用时禁用相应函数 尽量不要执行外部应用程序或命令 做输入格式检查 转义命令中所有shell元字符 shell元字符包括 #&;`,|*?~^()[]{}$\ 3.6....Magic检测绕过 有的站点使用文件头来检测文件类型,这种检查可以在Shell前加入对应字节以绕过检查。几种常见文件类型头字节如下表所示 3.7.1.3....后缀绕过 部分服务仅根据后缀、上传时信息或Magic Header来判断文件类型,此时可以绕过。 php由于历史原因,部分解释器可能支持符合正则 /ph(p[2-7]?|t(ml)?)...防护技巧 使用白名单限制上传文件类型 使用更严格文件类型检查方式 限制Web Server对上传文件夹解析

    1.2K20

    linux shell:find命令批量删除文件夹文件夹

    linuxfind 命令功能很强大,以下只是列举在删除文件操作用法示例。 对于空文件夹和文件,执行find命令时指定 -delete 参数就可以直接删除 批量删除空文件夹 find ....-type d -empty -delete -type d 指定过滤文件类型为direcory条目 -empty 参数用于过滤出空文件夹 批量删除文件 find ....来指定文件名 对于非空文件夹要用到find命令-exec参数调用rm命令来删除 批量强制删除文件夹 find ....-type d -name target -exec rm -fr "{}" \; 对于每个名为target文件夹执行 rm -fr命令删除, {}为文件名占位符,'\;'为rm命令结尾 更复杂用法...,意思就是要求文件夹名字为target或bin, -o 代表逻辑运算OR '\('和'\)'是用转义符()传递给find,避免脚本解释器(shell)自作主张翻译 这样find才能正确收到完整有效命令参数

    16.6K20
    领券