Linux

如何刪除文件夾名稱末尾的空格?

  • July 27, 2021

我想刪除文件夾名稱末尾的空格。

我有一個名為“Project1”的文件夾,其中還有另一個名為“Exercise1”的文件夾。

我想使用一個腳本來刪除最後的空格,並且只在最後。

我不知道我是否正確地表達了自己。

提前謝謝你,祝你有個愉快的夜晚。

我輸入了命令/bin/ls -l | od -c

root@debian:~$ /bin/ls -l | od -c
0000000   t   o   t   a   l       3   2  \n   d   r   w   x   r   -   x
0000020   r   -   x       2       k   a   b   i   a       k   a   b   i
0000040   a       4   0   9   6       j   u   i   l   .       2   0    
0000060   1   0   :   2   6       B   u   r   e   a   u  \n   d   r   w
0000100   x   r   -   x   r   -   x       7       k   a   b   i   a    
0000120   k   a   b   i   a       4   0   9   6       j   u   i   l   .
0000140       2   2       1   7   :   4   6       D   o   c   u   m   e
0000160   n   t   s  \n   d   r   w   x   r   -   x   r   -   x       2
0000200       k   a   b   i   a       k   a   b   i   a       4   0   9
0000220   6       j   u   i   l   .       2   2       1   9   :   2   6
0000240       I   m   a   g   e   s  \n   d   r   w   x   r   -   x   r
0000260   -   x       2       k   a   b   i   a       k   a   b   i   a
0000300       4   0   9   6       j   u   i   l   .       2   0       1
0000320   0   :   2   6       M   o   d 303 250   l   e   s  \n   d   r
0000340   w   x   r   -   x   r   -   x       2       k   a   b   i   a
0000360       k   a   b   i   a       4   0   9   6       j   u   i   l
0000400   .       2   0       1   0   :   2   6       M   u   s   i   q
0000420   u   e  \n   d   r   w   x   r   -   x   r   -   x       2    
0000440   k   a   b   i   a       k   a   b   i   a       4   0   9   6
0000460       j   u   i   l   .       2   0       1   0   :   2   6    
0000500   P   u   b   l   i   c  \n   d   r   w   x   r   -   x   r   -
0000520   x       2       k   a   b   i   a       k   a   b   i   a    
0000540   4   0   9   6       j   u   i   l   .       2   0       1   0
0000560   :   2   6       T 303 251   l 303 251   c   h   a   r   g   e
0000600   m   e   n   t   s  \n   d   r   w   x   r   -   x   r   -   x
0000620       2       k   a   b   i   a       k   a   b   i   a       4
0000640   0   9   6       j   u   i   l   .       2   0       1   0   :
0000660   2   6       V   i   d 303 251   o   s  \n
0000673

zsh

autoload zmv # best in ~/.zshrc
zmv -n '**/*[[:space:]]' '${f%%[[:space:]]#}'

-n(高興時刪除以進行試執行)

將從每個非隱藏文件或目錄的末尾刪除尾隨空格字元。(#q/)如果您只想限製到目錄,請添加到模式參數。或者(#qD)也處理隱藏文件。

POSIXly,你可以做一些接近的事情:

LC_ALL=C find . -depth -name '*[[:space:]]' -exec sh -x -c '
 for f do
   : mv -i "$f" "${f%"${f##*[![:space:]]}"}"
 done' sh {} +

(刪除-x:高興時)。

那個僅限於 ASCII 空白字元。

引用自:https://unix.stackexchange.com/questions/659345