#文件 #文件扩展名 #终端文件 #CLI #终端

bin+lib organize-rt

根据正则表达式(默认为文件扩展名)组织文件

4 个版本 (2 个稳定版)

1.0.1 2020年5月8日
1.0.0 2020年5月7日
0.9.1 2020年5月6日
0.9.0 2020年5月5日

#1847命令行工具

每月 48 次下载

GPL-3.0 许可证

130KB
2K SLoC

pipeline status

根据正则表达式规则组织文件,默认为文件扩展名。

安装

使用 cargo(需要 Rust)

运行以下命令进行安装:

$ cargo install organize-rt

它将下载并编译二进制文件到 ~/.cargo/bin。请将此目录添加到您的路径或将二进制文件复制到 /usr/bin/

从源代码编译(需要 Rust)

只需克隆此存储库并构建此项目

$ git clone --depth=1 https://gitlab.com/FixFromDarkness/organize-rt.git
$ cd organize-rt
$ cargo build --release

编译后,您可以使用二进制文件 ./target/release/organize-rt。例如,您可以将其复制到 /usr/bin。

使用预编译的二进制文件

从 GitLab 发布部分下载二进制文件。

Arch Linux

克隆存储库并使用 makepkg

$ git clone --depth=1 https://gitlab.com/FixFromDarkness/organize-rt.git
$ makepkg -sri

Fedora/CentOS

COPR 中可用

sudo dnf copr enable atim/organize-rt -y
sudo dnf install organize-rt

用法

$ organize-rt --help
organize-rt 1.0.0
Tool for organizing files in garbage dirs like 'Downloads'

USAGE:
    organize-rt [FLAGS] [OPTIONS] --output <output> --source <source>

FLAGS:
        --dry-run      Prints where the file would move, but does not move
    -h, --help         Prints help information
    -H, --hidden       Include hidden files/directories
    -q, --quiet        Quiet run, empty output
    -r, --recursive
    -u, --undo         Undo action (require log)
    -V, --version      Prints version information
    -v, --verbose      Show more info

OPTIONS:
        --log <log-path>     Path to save/load log [default: ./organize-rt.log]
    -o, --output <output>    Output directory
    -s, --source <source>    Directory to organize

推荐模式:organize-rt -rH

如果您有多个同名文件,程序将按如下方式保存它们:filefile.COPY<id>file.COPY<id>...,其中 id 不是副本编号,而是一个唯一的编号。此外,程序将跳过所有文件错误(如 Bad permissions),并打印有关它们的信息(如果不指定 --quiet 标志)。

运行此程序后,所有移动操作完成后,它将将其操作保存在日志中(--log 选项,默认 "./organize-rt.log")。如果您想撤销更改,请使用 --undo 选项。例如,运行 organize-rt --undo --log ./badrun.log 将撤销更改,并保存在 badrun.log 中。有关撤销的一些重要注意事项

  • 它使用绝对路径,因此您可以从任何地方运行它。
  • 由于使用绝对路径,如果输出目录被移动,则无法撤销更改
  • 它将跳过错误(输出目录中已删除的文件)
  • 您可以删除源目录,撤销模式将恢复它

示例

正常模式

$ organize-rt -s in -o out -rH --dry-run
in/avi.avi -> out/Video/avi.avi
in/compressed.tar.bz2 -> out/Compressed/compressed.tar.bz2
in/ogg.ogg -> out/Audio/ogg.ogg
in/conf.conf -> out/Configuration/conf.conf
in/archlinux.iso -> out/ISO/archlinux.iso
in/compressed.tar.gz -> out/Compressed/compressed.tar.gz
in/dir/document.docx -> out/Documents/document.docx
in/dir/image.png -> out/Images/image.png
in/unsorted.norule -> out/Unsorted/unsorted.norule
in/.hidden.conf -> out/Configuration/.hidden.conf
in/mp3.mp3 -> out/Audio/mp3.mp3

撤销此操作 (# 隐藏绝对路径)

$ organize-rt --undo --dry-run
#/out/Video/avi.avi -> #/in/avi.avi
#/out/Compressed/compressed.tar.bz2 -> #/in/compressed.tar.bz2
#/out/Audio/ogg.ogg -> #/in/ogg.ogg
#/out/Configuration/conf.conf -> #/in/conf.conf
#/out/ISO/archlinux.iso -> #/in/archlinux.iso
#/out/Compressed/compressed.tar.gz -> #/in/compressed.tar.gz
#/out/Unsorted/unsorted.norule -> #/in/unsorted.norule
#/out/Audio/mp3.mp3 -> #/in/mp3.mp3

编写自己的规则

只需编辑 ~/.config/organize-rt/organize-rt.toml。首次运行后,此文件将出现,您也可以使用此存储库中的 organize-rt.toml.default。文件结构

rules = [
#...
    [
    'REGEX',
    'OUTPUT_SUBDIR',
]
#...
]

使用此规则,符合正则表达式规则但未匹配先前规则的文件将移动到OUTPUT_DIR/OUTPUT_SUBDIR,其中OUTPUT_DIR是--output选项。

喜欢它吗?

请星标此仓库。

代码有问题?

等待您的pull请求或issue。

依赖关系

~9–20MB
~272K SLoC