我使用了命令
mv folder_name ....
Run Code Online (Sandbox Code Playgroud)
我认为通过使用..两次,它会将其移回两个文件夹。
不幸的是我的文件消失了。
我需要恢复它们。
当我在 ranger 中选择多个文件(使用<Space>或V)时,如何将这些选定的文件移动到另一个目录?
我尝试使用ddand pp,但这只会移动当前突出显示的文件。
我有这个 grep 命令来查找文件中没有“附件”一词的文件。
grep -L -- Attachments *
Run Code Online (Sandbox Code Playgroud)
我想移动从该命令输出的所有文件。我如何在 bash 中做到这一点?我使用管道吗?我是否在完整脚本中使用更冗长的 if/then 语句?
如何检查mv我的 fs (ext4)是否是原子的?
操作系统是 Red Hat Enterprise Linux Server 6.8 版。
一般来说,我该如何检查?我环顾四周,没有发现我的操作系统是否是标准的 POSIX。
我必须在 Ubuntu 下将一些文件从一个文件系统移动到另一个文件系统。但是,非常重要的是,文件在目的地永远不会作为部分或不完整的文件存在,至少不会以正确的文件名存在。
到目前为止,我唯一的解决方案是编写一个脚本来获取每个文件,将其复制到目的地的临时名称,然后在目的地将其重命名(我认为应该是原子的)为原始文件名,最后删除原始文件.
但是,编写和调试脚本对于这项任务来说似乎有点过头了。是否有一种方法或工具可以在本地完成此操作?
我在同一个分区 (EXT2) 上有两个文件夹 如果我mv folder1/file folder2和某些中断发生(例如电源故障),文件系统最终会不一致吗?
mv操作不是原子的吗?
更新: 到目前为止,在 IRC 上我得到了以下观点:
有人可以澄清吗?
我有一个文件夹,A其中有文件和目录,我想所有的文件和目录移动到另一个文件夹B,除非file,file2,directory,和directory2。
如何才能做到这一点?
I't trying to move around 4.5 million files (size ranges from 100 - 1000 bytes) from one partition to other. The total size of the folder is ~2.4 GB
First I tried to zip it and move the zipped file to the new location. It is able to paste only ~800k files and shows "out of space" error.
Next I tried the mv command and it also resulted in same condition.
Using rsync also resulted in the same error with …
我正在尝试通过 SSH 重命名 Synology Diskstation 上的一些文件。可用的外壳是 BusyBox 内置外壳:
BusyBox v1.16.1 (2013-04-16 20:13:10 CST) built-in shell (ash)
Run Code Online (Sandbox Code Playgroud)
当我尝试在源文件名或目标文件名中使用空格字符时,移动命令总是会产生两个错误。转义空格字符或引用文件名似乎没有效果。
在目标中使用空格字符重命名文件的示例:
/volumeUSB1/usbshare/directory $ touch test
/volumeUSB1/usbshare/directory $ ls
test
/volumeUSB1/usbshare/directory $ mv test 'te st'
mv: can't rename 'test': No such file or directory
mv: can't rename 'te': No such file or directory
/volumeUSB1/usbshare/directory $ mv test te\ st
mv: can't rename 'test': No such file or directory
mv: can't rename 'te': No such file or directory
Run Code Online (Sandbox Code Playgroud)
重命名源文件中带有空格字符的文件会产生类似的结果:
/volumeUSB1/usbshare/directory $ touch 'te st' …Run Code Online (Sandbox Code Playgroud) 示例脚本:
#!/bin/sh -e
sudo useradd -m user_a
sudo useradd -m user_b -g user_a
sudo chmod g+w /home/user_a
set +e
sudo su user_a <<EOF
cd
umask 027
>> file_a
>> file_b
>> file_c
ls -l file_*
EOF
sudo su user_b <<EOF
cd
umask 000
rm -f file_*
ls -l ~user_a/
set -x
mv ~user_a/file_a .
cp ~user_a/file_b .
ln ~user_a/file_c .
set +x
ls -l ~/
EOF
sudo userdel -r user_b
sudo userdel -r user_a
Run Code Online (Sandbox Code Playgroud)
输出:
-rw-r----- 1 user_a user_a 0 …Run Code Online (Sandbox Code Playgroud) move ×10
command-line ×2
file-copy ×2
files ×2
mv ×2
bash ×1
busybox ×1
command ×1
crash ×1
directory ×1
ext2 ×1
ext4 ×1
file-manager ×1
filesystems ×1
hard-link ×1
linux ×1
permissions ×1
posix ×1
ranger ×1
rename ×1
scripting ×1
shell ×1
whitespace ×1