文件操作命令生成器(cp / mv / rsync / scp)
网络所有处理都在浏览器本地完成,数据不上传服务器
输入
把文件拖到这里可直接载入
输出
这四个命令的选项互不通用,而「某个选项在这个命令上根本不存在」正是最容易踩的坑:`mv` 没有 `-p`、`cp` 没有干跑、`--exclude` 只有 rsync 认。这个工具按你选的命令只放上真正存在的开关,并把被丢掉的选项明说出来,而不是悄悄忽略。路径处理是另一半价值:含空格的路径会被逐个加上引号(不是整串套一层,那会把两个文件变成一个不存在的文件名),而 `*.log` 这样的通配则保持不加引号,留给 shell 展开。 命令在你的浏览器里拼出来,不联网、不上传路径。
功能
- 四种命令:cp、mv、rsync、scp
- 输入第一行是源,其后每行一个目标
- 含空格的路径逐个加引号,不会整串套一层
- 通配符(*.log)保持不加引号,留给 shell 展开
- rsync 专属的 -n 干跑与 --exclude 排除
- 该命令不支持的选项会明说,而不是默默丢掉
- mv 覆盖不可撤销等风险单独提醒
- 全部本地完成,不联网
使用方法
- 第一行填源路径,后面每行填一个目标
- 选命令,并勾选需要的选项
- 远端目标填成 user@host:/path
- 复制生成的命令与选项说明
常见问题
- 为什么路径要加引号,加在哪里?
- 因为 shell 用空格分隔参数,`my file.txt` 不加引号会被当成两个参数。正确做法是给每个含空格的路径单独加引号,得到 `cp "my file.txt" out/`。反过来,把整串路径套一层引号(`cp "a.txt b.txt"`)会把它们变成一个文件名 —— 这是同一个问题的另一种错法。所以这个工具逐条判断,哪个需要就加哪个。
- 为什么 mv 勾了递归却没有 -r?
- 因为 `mv` 本身就是递归的 —— 移动一个目录会连内容一起移动,它根本不认 `-r`。同样地,`mv` 也没有 `-p`:移动只是改目录项,本来就不改变权限与时间戳。所以这两个选项在 mv 上不生成参数,只给出说明。
- rsync 和 cp 该用哪个?
- 本地一次性复制用 `cp` 就够了。要增量同步(只传变化的文件)、要排除一批文件、要传到远端、或者想先用 `-n` 干跑看看会做什么,就用 `rsync`。`scp` 是 rsync 不可用时的简单替代,但它不能增量、不能排除。
- 为什么 cp 没有干跑?
- 因为 `cp` 与 `mv` 都没有干跑选项,`scp` 也没有。想先预览会动到哪些文件,可以用 `rsync -n`(它的选项集最完整),或者把目标换成临时目录先跑一遍。这个工具在你勾选干跑而命令不支持时,会直接把这条限制写进结果。
相关工具
路径转换
网络一次给出 Windows、正斜杠、WSL(/mnt/c)与 Git Bash(/c)四种路径写法,末尾斜杠原样保留。全部在浏览器本地完成。
Linux 权限计算
网络在 755、u+x,g-w 与 -rwxr-xr-x 三种写法之间互转,逐位解释每一项权限,并按 umask 推算新建文件与目录的默认权限。全部在浏览器本地完成。
.gitignore 生成
网络.gitignore 在线生成:勾选语言、框架、编辑器、系统共 17 个模板,自动合并去重并按模板加注释分隔。全部在浏览器本地完成。
URL 解析
网络在线 URL 解析:拆出协议、主机、端口、路径、查询参数与锚点,参数逐个解码并与原始值对照,缺协议自动补 https://。全部在浏览器本地完成。
UA 解析
网络在线 User-Agent 解析:识别浏览器、版本、操作系统、设备类型与渲染引擎,并列出命中的匹配规则。结果基于模式匹配,仅供参考。全部在浏览器本地完成。
HTTP 状态码
网络HTTP 状态码查询与速查:输入编号查含义、1xx 到 5xx 分类、常见场景与排查提示,也能用关键词反查编号。全部在浏览器本地完成。