4 个版本
0.1.0-alpha.2C | 2021年11月4日 |
---|---|
0.1.0-alpha.2B | 2021年11月3日 |
在 命令行实用工具 中排名 #2187
16KB
153 行
KeySort-cli
keysort 是一个小型实用工具,通过为文件夹分配一个键/字符,然后将每个文件和文件夹的分配键按顺序输入,将文件和文件夹排序到不同的文件夹中
截至版本 0.1.0-alpha.2C,此应用程序只能在 macOS 上运行,除非终端输入格式正确
安装
从 Crates.io 安装
cargo install keysort --version "0.1.0-alpha.2C"
用法
使用当前版本的 keysort,您需要正确输入语法,且目标位置没有现有的文件/文件夹,否则程序会崩溃并关闭
- 启动 keysort
keysort
- 输入 目标文件夹(建议使用绝对路径)
$ keysort
Drag and Drop destination folders (Separate each directory by space)
<directory1> <directory2> <directory3>
// Example:
/Users/john/Desktop /Users/john/Documents /Users/Documents/Folder\ 1
在 macOS 上,您只需将选定的文件夹拖放到终端窗口即可完成此输入,但在 Linux 和 Windows 上,这将在路径的两端添加撇号(' ')。这可能会引起程序问题,因此如果您使用 Windows 和 Linux,请从目录名中删除撇号(')
- 为文件夹分配键/字符
程序将遍历您在第 2 步中输入的文件夹
Enter a character to assign to folder:
/directory/inputted/1
<character> //User input here
Enter a character to assign to folder:
/directory/inputted/2
<character>
//Example
Enter a character to assign to folder:
/Users/john/Desktop
a //Type 'a' and hit Enter
Enter a character to assign to folder:
/Users/john/Documents
b //Type 'b' and hit Enter
...........
- 选择要移动的文件/文件夹
在为目的地文件夹分配键后,程序将提示您
Is your file/folder all located in the same directory? (y/n)
如果您有一个包含您打算移动的所有文件和文件夹的文件夹,选择 是(输入 'y')来选择此选项。此选项将仅扫描一级(所选文件夹的内容,不包括子目录)中的文件和文件夹以进行移动。
因此,当您选择是并选择 allContents 作为包含所有文件和文件夹的文件夹时
// allContents/
// |
// +- File1.txt
// +- File2.rar
// +- File3.md
// +- Folder1
// |
// +- fileInFolder.txt
// +- fileInFolder2.rar
// +- Folder2
// |
// +- Folder3
// +- Folder4
Is your file/folder all located in the same directory? (y/n)
y
Enter the directory where all files/folders are stored
/path/to/allContents <- Only input one directory, then hit Enter
以下是要移动的内容
File1.txt
File2.rar
File3.md
Folder1 // And its contents (recursive)
Folder2 // And its contents (recursive)
如果您为此选项选择 否,您可以单独选择要移动的文件和文件夹。就像第 2 步一样,用空格分隔每个项目
Is your file/folder all located in the same directory? (y/n)
n
Enter files/folders to move (Separate by spaces)
<directory1> <file1.ext> <file2.ext> <directory3>
// Example
Enter files/folders to move (Separate by spaces)
/Users/john/Desktop/Folder1 /Users/john/Documents/file.rar /Users/john/Music/MusicFolder
截至目前,此程序在移动大文件时速度较慢,因为它使用 fs_extra 库,该库尝试逐块复制文件夹,并且受其分配的缓冲区大小的限制。目前,此缓冲区大小设置为 100MB。如果您有超过 5 GB 的文件,我建议避免使用此工具,因为确实会移动文件,但命令行会暂时无响应
- 移动文件
程序现在将遍历您在上一步中选择的每个项目。
现在您需要做的就是输入要移动到的目标文件夹的键/字符。
Move [source file/folder] to:
a //Type the character assigned in step 3 then hit Enter
Move [source file/folder] to:
b
输入字符后,它将开始移动文件。根据文件大小,可能需要一段时间才能显示下一个 '移动' 提示,请耐心等待。所有文件移动完成后,程序将退出
待办事项和已知问题
待办事项
- 支持 Windows 和 Linux 拖放语法
- 控制台装饰
- 接受标志/参数
- 递归模式(将所有文件逐个移动到文件夹的第 n 层)
- 安全模式(在确认后程序结束时执行)
- 输入 .json 或 .txt 作为目标文件/文件夹输入
已知问题
- 当目标位置存在同名文件夹时,不会移动文件夹
- 当文件已存在时,会引发恐慌
- fs_extra 在移动大型目录/文件时速度过慢
- 解决方案:增加缓冲区大小
- 缺点:效率较低
- 解决方案:增加缓冲区大小
依赖项
约 2MB
约 37K SLoC