使用ncftp删除文件夹中的所有文件和文件夹的命令

Mik*_*ole 1 ftp windows-server

我在远程服务器上有一个我需要清除的文件夹.我需要删除此文件夹中的所有文件和文件夹.我无法删除并重新创建父文件夹,因为我不想搞砸这些权限.

例如:远程文件夹是Development/
That文件夹包含多个文件和几个文件夹.
我想运行一个命令来完全清空Development /文件夹,并给我一个新的空版本.

我还需要它与Windows FTP客户端兼容.

bla*_*lah 5

既然你澄清了你不仅限于ncftp,你应该使用lftp而不是内部支持使用glob和的操作rm -r.这是一个完整的演示:

~/ftptest$ find .    # Test folder with a number of files and directories in it.
.
./dir1
./dir1/subdir1
./dir1/subdir1/subsubfile1
./dir1/subfile1
./dir2
./file1
./file2

~/ftptest$ lftp localhost    # Connect
Password:
lftp blahdiblah@localhost:~> cd ~/ftptest/    # cd to test folder
cd ok, cwd=/Users/blahdiblah/ftptest

lftp blahdiblah@localhost:~ftptest> ls    # The files are there...
total 0
drwxr-xr-x  4 blahdiblah  staff  136 Jul 30 15:40 dir1
drwxr-xr-x  2 blahdiblah  staff   68 Jul 30 15:40 dir2
-rw-r--r--  1 blahdiblah  staff    0 Jul 30 15:40 file1
-rw-r--r--  1 blahdiblah  staff    0 Jul 30 15:40 file2

lftp blahdiblah@localhost:~/ftptest> glob -a rm -r *    # the magic happens...
rm ok, 7 files removed

lftp blahdiblah@localhost:~/ftptest> bye
~/ftptest$ find .    # ...and then they're gone!
.
~/ftptest$
Run Code Online (Sandbox Code Playgroud)

文档给出了完整的解释:

rm [ -r ] [ -f ] 文件

删除远程文件.不扩展通配符,使用mrm.-r用于递归目录删除.小心,如果出现问题,您可能会丢失文件.-f禁止错误消息.

glob [ -d ] [ -a ] [ - f ] 命令模式

Glob给出包含元字符的模式并将结果传递给给定命令.例如
glob echo *

-f普通文件(默认)
-d目录
- 所有类型

(注意,mrm在这种情况下不可用,因为它也不会扩展*为包含目录.)