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

基于父目录重命名文件的Bash脚本

是一种用于批量修改文件名的脚本,它通过获取文件所在目录的名称,并结合指定的前缀或后缀来生成新的文件名。

该脚本可以使用Bash编写,并在Linux或类Unix系统中运行。下面是一个示例脚本:

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

# 遍历指定目录下的所有文件
for file in /path/to/directory/*; do
    # 判断是否为文件
    if [[ -f $file ]]; then
        # 获取文件所在目录的名称
        parent_dir=$(dirname "$file")
        dir_name=$(basename "$parent_dir")

        # 获取文件的名称和扩展名
        file_name=$(basename "$file")
        extension="${file_name##*.}"
        name="${file_name%.*}"

        # 生成新的文件名
        new_name="$dir_name"_"$name.$extension"

        # 重命名文件
        mv "$file" "$parent_dir/$new_name"

        echo "重命名文件:$file 为 $new_name"
    fi
done

这个脚本会遍历指定目录下的所有文件,对于每个文件,它会获取文件所在目录的名称作为前缀,然后将前缀与文件名和扩展名组合起来生成新的文件名。最后,它使用mv命令将文件重命名。

这个脚本适用于需要根据文件所在目录对文件进行批量重命名的场景,例如整理照片或音乐文件时根据文件所在的相册或专辑进行重命名。

腾讯云提供了多个与文件存储相关的产品,适用于各种云计算场景。其中,对象存储 COS(Cloud Object Storage)是一个高可用、可扩展、低成本的云端文件存储服务。您可以将生成的新文件名应用于COS中的文件,并使用COS的API进行文件管理操作。具体信息请参考腾讯云COS产品介绍:腾讯云对象存储(COS)

请注意,以上提供的答案仅供参考,实际应用中可能需要根据具体情况进行调整。

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

相关·内容

基于Bash Shell一个审计脚本

二、网站日志分析 这个基本没变,懒得改了,详情可参考3年前写那篇文章。 如何编写自己Web日志分析脚本? ? 运行结果如下: ? ?...主要是通过根据用户指定文件名或IP地址,将用户内容保存成变量,然后开始筛选,排除404、400响应码以及Binary关键字等不关注信息,然后针对性进行输出和统计,让检索内容显示简洁些,并将输出内容进行保存...echo "日志内容搜索" read -p "请输入要分析脚本名称:" name66 if [ -z $name66 ];then echo "请输入正确文件名...毕竟都2020年了,不会徒手写shell脚本攻城狮不是好运维~ 写个整体代码框架示例,可能看起来能更清楚些... #!...五、题外话 在kali中,可以将常用工具集中起来,配合bash shellfunction函数,来实现自动化执行,就不需要背命令了,无论什么工具,输个IP地址或者域名就可以直接使用了,只要你提前在function

1.1K30

如何从Bash脚本本身中获得其所在目录

问: 如何从Bash脚本本身中获得其所在目录? 我想使用Bash脚本作为另一个应用程序启动器。我想把工作目录改为Bash脚本所在目录,以便我可以对该目录文件进行操作,像这样: $ ....但是在以相对路径方式去执行脚本时,获取目录信息是相对路径,不能满足其他需要获取绝对路径场景。 如果要获取绝对路径,可以使用如下方法: #!...$script_dir 其中第3行代码,无论从何处调用它,都将为你提供脚本完整目录路径。...测试结果如下: 另外,可以根据第一种方法结合使用 realpath 命令,也可获取脚本所在目录绝对路径: #!..."cd"来更改目录 为什么在可执行文件脚本名称之前需要.

28620

原 shell脚本逻辑判断,文件目录

shell脚本逻辑判断: 逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(=);...a=1 那么 a 就不>3 所以就不满足条件,就是else 第三种格式:if …; then … ;elif …; then …; else …; fi 文件目录属性判断: 【 if file 】 判断是否是普通文件...,切存在 【-d file 】判断是否是目录,且存在 【 -e file 】判断文件目录是否存在 【 -r file 】判断文件是否可读 可写 可执行 = 类似 判断不同写法:【 -f $f 】||.../lalala文件为空,或者被删除的话,脚本就会运行出错,出现bug 应该加上一个判断条件 #!...: 在网卡系统服务脚本中,如,/etc/init.d/iptables中就用到了case 在case中,可以在条件中使用“|”,表示或意思 输入一个同学分数,判断成绩是否及格,优秀。

1.3K50

脚本分享——对fasta文件序列进行排序和重命名

小伙伴们大家下午好,我是小编豆豆,时光飞逝,不知不觉来南京工作已经一年了,从2018年参加工作至今,今年是我工作最快乐一年,遇到一群志同道合小伙伴,使我感觉太美好了。...今天是2022年最后一天,小编在这里给大家分享一个好用脚本,也希望各位小伙伴明年工作顺利,多发pepper。‍...安装python模块 # 使用pip安装 pip install biopython pip install pandas 查看脚本参数 python Fasta_sort_renames.py...-h 实战演练 # 只对fasta文件序列进行命令 python Fasta_sort_renames.py -a NC_001357.1.fna -p scoffold -s F -a rename_fasta.fna...# 对fasta文件中序列根据序列长短进行排序,并对排序后文件进行重命名 python Fasta_sort_renames.py -a NC_001357.1.fna -p scoffold -s

5.7K30

bash shell:脚本中修改profile文件更新LD_LIBRARY_PATH示例

流编辑器则会在编辑器处理数据之前基于预先提供一组规则来编辑数据流。 于是我们可以利用sed编辑器在安装脚本实现对profile文件修改。...下面我们以一个实际应用例子来说明: 我已经有一个叫CASSDK项目,这个项目没有可执行文件,只是一组动态库文件提供别的应用程序调用(比如java),需要为它写一个安装脚本脚本作用是将在将文件复制到指定安装目录...另外还要写一个卸载脚本,在删除安装目录后,同时将profile中LD_LIBRARY_PATH变量也同步修改。...下面是原始profile脚本片段 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/...(UNINSTALL.sh)片段,用sed修改profile文件,删除安装脚本添加export语句 # 定义安装目录位置变量 cassdk_path=/home/gdface/cassdk # 将cassdk_path

2.9K20

使用Shell脚本遍历子目录下所有文件方法

最近博客进行了搬家,CDN源发生改变,想着在CDN上将博客所有图片刷新预热一遍,那么问题来了,刷新预热需要得到所有图片地址,于是直接使用Shell脚本递归遍历wp-content/uploads目录先得到图片文件路径...创建Shell脚本 使用vi编辑器,先创建一个vi traveDir.sh文件,复制下面的脚本代码: #!.../bin/bash function read_dir(){ for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令 do if [ -d $1"/"$file ] #注意此处之间一定要加上空格.../traveDir.sh /xxx/wp-content >> 1.txt 后续操作 导出文件路径可能是/data/wwwroot/xiaoz.me/wp-content/uploads//2019/...总结 脚本批量导出文件路径 文本工具将站点根目录批量替换为自己域名 提交URL刷新 脚本比较简单,网上一搜一大把,此文参考了:使用Shell遍历目录及其子目录所有文件方法

1.5K20

【经验分享||快速解决】【修改版】使用Python脚本来按顺序重命名目录MP4文件脚本会列出指定目录所有MP4文件,并按顺序重命名为1.mp4、2.mp4、3.mp4等

问题背景 因为我要上传到某站平台视频过多,视频全是未命名文件mp4,导致我很容易传错顺序,所以需要一个一个重命名。 但是一个一个重命名又太麻烦了,所以我写了一个python脚本,用于快速重命名。...这个Python脚本用于按顺序重命名目录MP4文件。这个脚本会列出指定目录所有MP4文件,并按顺序重命名为1.mp4、2.mp4、3.mp4等。...改进后代码 当文件已经存在时候跳过该文件 这样就行了 修改后完整代码如下 import os def rename_files_in_directory(directory_path...): # 获取目录所有文件名 files = os.listdir(directory_path) # 过滤出所有MP4文件 mp4_files = [file for...file in files if file.endswith('.mp4')] # 按名称排序以确保按顺序重命名 mp4_files.sort() # 遍历MP4文件重命名

11910

• • ​​​​ 目录​ • shell命令概述 • 获得命令帮助 • Linux命令行格式 • 文件目录管理 • Bash命令历史 • Bash命令别名 • 重定向 • vim文本编辑器

文本编辑器 文本编辑器作用: 维护Linux系统中各种配置文件 编写shell脚本 vim编辑器工作模式 三种工作模式:命令模式、输入模式、末行模式 1)命令模式:启动vi编辑器后默认进入命令模式...SElinux主要目标是防止已遭泄露系统服务访问用户数据。大多数linux管理员都熟悉标准用户/组/其他权限安全模型。这种基于用户和组模型为自由决定访问控制。...文本编辑器 文本编辑器作用: 维护Linux系统中各种配置文件 编写shell脚本 vim编辑器工作模式 三种工作模式:命令模式、输入模式、末行模式 1)命令模式:启动vi编辑器后默认进入命令模式...文本编辑器 文本编辑器作用: 维护Linux系统中各种配置文件 编写shell脚本 vim编辑器工作模式 三种工作模式:命令模式、输入模式、末行模式 1)命令模式:启动vi编辑器后默认进入命令模式...文本编辑器 文本编辑器作用: 维护Linux系统中各种配置文件 编写shell脚本 vim编辑器工作模式 三种工作模式:命令模式、输入模式、末行模式 1)命令模式:启动vi编辑器后默认进入命令模式

1.2K40

shell脚本逻辑判断,文件目录属性判断,if特殊用法,case语句

笔记内容: 20.5 shell脚本逻辑判断 20.6 文件目录属性判断 20.7 if特殊用法 20.8/20.9 case判断 笔记日期:2017-11-22 20.5 shell脚本逻辑判断...在shell中经常会和文件目录打交道,所以这个时候对文件目录判断就比较重要了。例如经常会需要去判断这个文件是否存在、文件大小是否大于或小于多少、文件属主属组是谁等等。...运行结果(文件不存在): ? 运行结果(文件存在): ? 2. [ -d file ] 判断是否是目录,且存在,代码示例: ? 判断一个目录是否存在,不存在则创建此目录,存在则打印此变量。...以上判断一个文件是否可读、可写、可执行,是基于当前用户权限来判断,所以就是判断当前用户是否对这个文件拥有这些权限。...如果你只是想执行一些简单判断文件目录属性语句,可以利用逻辑运行符在一行代码完成,例如我要判断一个文件是否存在,存在的话就删除这个文件,代码示例: ?

3.6K30

Shell 进阶指南

ag - 在层级目录中超快搜索字符串 aliases - 针对 bash 上下文动态组织别名 aliasme - 用来快速更改目录 alias 辅助程序 autoenv - 基于目录环境 autojump...bashmarks - 适用于 shell 目录书签 bd - 迅速回到目录 boilr - 从 boilerplate 模板创建项目的超快命令行工具 boom - 在命令行中存储链接及片断 borg...适用于终端 hstr - Bash 历史建议框 k - k 是一个使目录列表更可读 Zsh 脚本,它增添了 Git 状态、文件颜色、以及腐朽日期 k alias - 获得用于单行酷...hooks 框架 repren - 命令行搜索与替换及文件重命名瑞士军刀式工具 slap - 运行在 Node.js 上基于终端类 Sublime 文本编辑器 shipit - 极简 SSH...- 使用 Bash 编写 Git dotfile 同步器 vcsh - 基于 Git 配置管理器 shundle - 适用于 shell 脚本插件管理器 Shell 脚本开发 用于编写、改进、及管理

2.7K71

带你书写linux超实用脚本——xcall(同步执行命令)与xsync(同步文件目录)

今天,博主在参考了网上一些资源后,为大家提供了两个十分简便脚本,可以轻松解决上述问题。...一.同步文件/目录脚本(xsync) 将文件目录同步到集群其他节点 在使用之前,所有节点均需要安装 rsync 服务(yum install rsync -y) 建议创建脚本目录为:/usr/local...# 获取文件绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo "file path is $pdir" # 获取当前用户(如果想使用root用户权限拷贝文件,在命令后加入...二.同步执行命令脚本(xcall) 在一个节点上输入命令可以同步到其余节点执行 建议创建脚本目录为:/usr/local/bin shell脚本 #!.../bin/bash # 获取控制台指令 cmd=$* # 判断指令是否为空 if [ !

2.1K50
领券