uniformly change file or directory names
Project description
Introduction
A tool for uniformly change file sor directory names and also support rollback these operations.
In short,fdn is about file names operation.
Bash Version
Warning:May be not to continue update ,because Bash is too difficult.
A tool base on rename to uniformly change file name.
File name format:
no space remained in file name(firstly every space will be replaced by an underscore,then multiple consecutive underscores will be reduced to only one);
only underscore allowed in file name,all other control characters will be replaced by underscore;
multiple consecutive underscores will be reduced to one;
underscore at the beginning of file name will be deleted;
underscore at the end of file name will be deleted;
Python Version
A Python tool to unify file or directory name.
File or directory name format:
no space in file name(firstly every space will be replaced by an underscore,then multiple consecutive underscores will be reduced to one);
only underscore allowed in file name,all other control characters will be replaced by underscore;
multiple consecutive underscores will be reduced to one;
underscore at the beginning of file name will be deleted;
underscore at the end of file name will be deleted;
keep bash special parameters in file name;
some terminology will remained(update continuously) ,such as USB,PCIe …
Installation
Bash Version
The content is bash script,so you can download and run directly;
If you want to run fdn.sh any where,please make sure place fdn.sh in /usr/local/bin or /usr/bin or other directory include in Environment_variable ;
If you want to run the script in some directory , you can create soft link (ln -s fdn.sh TargetName)
Python Version
To install fdn via conda:
$ conda install -c hobbymarks fdn
To install fdn via pip:
$ pip install fdn
Usage/参数
Options:
Usage: fdn [OPTIONS] [PATH]...
Files in PATH will be changed file names unified.
Options:
-d, --max-depth INTEGER Set travel directory tree with max
depth. [default: 1]
-t, --file-type [file|dir] Set type.If 'file',operations are only
valid for file,If 'dir',operations are
only valid for directory. [default:
file]
-i, --in-place Changes file name in place. [default:
False]
-c, --confirm Need confirmation before change to
take effect. [default: False]
-l, --is-link Follow the real path of a link.
[default: False]
-f, --full-path Show full path of file.Relative to the
input path. [default: False]
-a, --absolute-path Show absolute path of file. [default:
False]
-r, --roll-back To roll back changed file names.
[default: False]
-o, --overwrite Overwrite exist files. [default:
False]
-p, --pretty Try to pretty output. [default:
False]
-e, --enhanced-display Enhanced display output. [default:
False]
--version Show the version and exit.
-h, --help Show this message and exit.
ATTENTION!
When you run fdn ,you will see two kinds of output:
First Kind
sample▯file▯name -->sample_file_name
The output means: a file name sample file name will be changed to sample_file_name
--> means in dry run mode ,operation not take effect.The character ▯ means space ,every space will be replaced by one ▯.
The character ``▯`` is only for the convenience of visual contrast and only display in output.
or
Second Kind:
sample▯file▯name ==>sample_file_name
The output means: a file named sample file name has been changed to sample_file_name
==> means operation have taken effect.
all deleted character will be display as red color ,such as the original file name:
sample ▯ file ▯ name
all added character will be diplayed as green color ,such as the changed file name:
sample * file * name
Options
-d option
$ fdn tgt_root -f -t dir -d 2 tgt_root/test directory/$0_T\▯Only -->tgt_root/test directory/$0_T_Only tgt_root/!临时文件夹 -->tgt_root/LSW临时文件夹 tgt_root/_is▯dir▯% -->tgt_root/Is_dir_% tgt_root/测试@#文件夹 -->tgt_root/CS测试_文件夹 tgt_root/test▯directory -->tgt_root/Test_Directory tgt_root -->Tgt_Root ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdn tgt_root -f -t dir -d 1 tgt_root/!临时文件夹 -->tgt_root/LSW临时文件夹 tgt_root/_is▯dir▯% -->tgt_root/Is_dir_% tgt_root/测试@#文件夹 -->tgt_root/CS测试_文件夹 tgt_root/test▯directory -->tgt_root/Test_Directory tgt_root -->Tgt_Root ******************************************************************** In order to take effect,add option '-i' or '-c'
-t option
$ fdn tgt_root -f -t dir tgt_root/!临时文件夹 -->tgt_root/LSW临时文件夹 tgt_root/测试@#文件夹 -->tgt_root/CS测试_文件夹 tgt_root/test▯directory -->tgt_root/Test_Directory tgt_root/_is▯dir▯% -->tgt_root/Is_dir_% ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdn tgt_root -f tgt_root/thi_Is_File_%.mp4 -->tgt_root/Thi_Is_File_%.mp4 tgt_root/$0▯▯测试用文件.html -->tgt_root/$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
-i option
$ fdn tgt_root/\$0\ \ 测试用文件.html -io $0▯▯测试用文件.html ==>$0_测试用文件.html
-c option
$ fdn tgt_root/\$0\ \ 测试用文件.html -c $0 测试用文件.html Please confirm(y/n/A/q) [no]: $0▯▯测试用文件.html -->$0_测试用文件.html $ fdn tgt_root/\$0\ \ 测试用文件.html -c $0 测试用文件.html Please confirm(y/n/A/q) [no]: y $0▯▯测试用文件.html ==>$0_测试用文件.html
-l option
This Option
-f option
$ fdn tgt_root/\$0\ \ 测试用文件.html $0▯▯测试用文件.html -->$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdn tgt_root/\$0\ \ 测试用文件.html -f tgt_root/$0▯▯测试用文件.html -->tgt_root/$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
-a option
$ fdn a▯Test-file.txt -->A_Test_File.txt ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdn -a /home/hma/a▯Test-file.txt -->/home/hma/A_Test_File.txt ******************************************************************** In order to take effect,add option '-i' or '-c'
-r option
$ fdn tgt_root/\$0_测试用文件.html -r $0_测试用文件.html -->$0▯▯测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
-o option
$ fdn tgt_root/\$0\ \ 测试用文件.html -i Exist:$0_测试用文件.html Skipped:$0 测试用文件.html With option '-o' to enable overwrite. $ fdn tgt_root/\$0\ \ 测试用文件.html -io $0▯▯测试用文件.html ==>$0_测试用文件.html
-p option
$ fdn tgt_root thi_Is_File_%.mp4 -->Thi_Is_File_%.mp4 $0▯▯测试用文件.html -->$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdn tgt_root -p thi_Is_File_%.mp4 -->Thi_Is_File_%.mp4 $0▯▯测试用文件.html -->$0 _测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
-e option
$ fdn tgt_root/\$0_测试用文件.html -re $0_测试用文件.html -->$0▯▯测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
Example/示例
change one file name/修改一个文件名
$ fdn tgt_root/\$0\ 测试用文件.html $0▯测试用文件.html -->$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
change files in dir/修改指定目录下文件名
$ fdn tgt_root $0▯测试用文件.html -->$0_测试用文件.html This▯is▯a▯Test▯file.pdf -->This_Is_A_Test_File.pdf _thi▯is▯file▯%.mp4 -->thi_Is_File_%.mp4 这是测试文件▯.jpg -->ZSC这是测试文件.jpg ******************************************************************** In order to take effect,add option '-i' or '-c'
rollback one file changed/取消一个文件名的修改
$ fdn tgt_root/\$0_测试用文件.html -r $0_测试用文件.html -->$0▯测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
rollback files changed in dir/取消目录下文件名的修改
$ fdn tgt_root -r This_Is_A_Test_File.pdf -->This▯is▯a▯Test▯file.pdf ZSC这是测试文件.jpg -->这是测试文件▯.jpg thi_Is_File_%.mp4 -->_thi▯▯is▯▯▯file▯%.mp4 $0_测试用文件.html -->$0▯测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
joint work with fd/与 fd 工具联合工作
fd is a program to find entries in your filesytem. It is a simple, fast and user-friendly alternative to find.*
$ fdfind -HIi html -X fdn
$0▯▯测试用文件.html
-->$0_测试用文件.html
********************************************************************
In order to take effect,add option '-i' or '-c'
$ fdfind -HIi html -X fdn {} -pf
tgt_root/$0▯▯测试用文件.html
-->tgt_root/$0 _测试用文件.html
********************************************************************
In order to take effect,add option '-i' or '-c'
简介
一个小工具,用于日常统一更改文件(或者文件夹)名称
Bash版
Warning:可能不继续更新.
基于rename 的一个小工具,用 bash 编写,用于日常统一更改资料的文件名。
目前的具体格式:
文件名中不保留空格(空格首先会被替换为下划线,之后根据是否存在连续下划线来决定缩减);
文件名中只保留下划线字符,其余的控制类字符会被替换为下划线;
多个连续的下划线字符会被缩减为一个下划线;
如果文件名首字符为下划线将会被删除;
除去扩展名后的文件名如果最后一个字符是下划线也会被删除;
Python 版
用Python 编写,用于日常统一更改资料的文件名。
目前的具体格式:
文件名不保留空格(首先空格会被替换为下划线,之后根据是否存在连续下划线来决定缩减);
文件名中只保留下划线字符,其余的控制类字符会被替换为下划线;
多个连续的下划线字符会被缩减为一个下划线;
如果文件名首字符为下划线将会被删除;
除去扩展名后的文件名如果最后一个字符是下划线也会被删除;
在文件名中保留 bash special parameters ;
文件名中包含的一些术语会保留术语本身的大小写写法(持续更新中…),例如 USB,PCIe 等;
安装
Bash版
Python 版
建议使用conda 进行安装:
$ conda install -c hobbymarks fdn
使用pip 进行安装:
$ pip install fdn
参数
请前往Usage/参数 查看
示例
参考 Example/示例 查看
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fdn-2021.10.13.2318.tar.gz.
File metadata
- Download URL: fdn-2021.10.13.2318.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/0.0.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7b66472ca567c1bc79f9e0b2682ec4fb46f3bc53bc59f166dc6578582cc4a00
|
|
| MD5 |
14e4714c5197d9641f6e2c3164a60081
|
|
| BLAKE2b-256 |
64b903580c2909aa0b3ed165643b2ce4c8c22e9aa7cc4a364afed4f89b514e84
|
File details
Details for the file fdn-2021.10.13.2318-py2.py3-none-any.whl.
File metadata
- Download URL: fdn-2021.10.13.2318-py2.py3-none-any.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/0.0.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ebee3230e50d3b6c1f8b057393925a6a4f0ed57e38ef7b157ae8301f44e9348
|
|
| MD5 |
1fd2ad42f01fc13cf28f782847004f75
|
|
| BLAKE2b-256 |
3332ff4b2ef9fa577cfc65ec64588872c1e078bd6688491c573b4749776fad89
|