find -exec directories with spaces

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting find -exec directories with spaces
# 1  
Old 03-12-2010
find -exec directories with spaces

All, I have a cleanup script that removes directories and all contents underneath, but I am having issues with directories with spaces.

This is the command I am currently running, how can I get it to work with directories with spaces?

find /path -mindepth 3 -type d -exec rm -rf {} \;

# 2  
Old 03-12-2010
Strange, I thought that the find exec arguments were not subject to shell word splitting ...

I cannot reproduce:

$ mkdir a\ b
$ ls -ld a\ b/
drwxr-xr-x+ 1 sysadmin None 0 2010-03-12 19:57 a b/
$ find -depth -name 'a b' -exec rm -r {} \;
$ ls -ld a\ b/
ls: cannot access a b/: No such file or directory

Could you please give more details? Which OS? Could you also copy/paste the command and the output from your terminal?
# 3  
Old 03-12-2010
Running RHEL 5.4
Well, it is finding it, but then it cannot remove because of the space. So, I think the issue is with the remove command and not the find command. May need to pipe it somehow to format it?

Regular find command:
find /home/chroot/marketing/ -mindepth 3 -type d
/home/chroot/marketing/user/download/Fake Name

 find /home/chroot/marketing/ -mindepth 3 -type d -exec rm -rf {} \;
find: /home/chroot/marketing/user/download/Fake Name: No such file or directory

# 4  
Old 03-12-2010
Could you try with -depth:

 find /home/chroot/marketing/ -depth -mindepth 3 -type d -exec rm -rf {} \;

# 5  
Old 03-12-2010
Originally Posted by radoulov
Could you try with -depth:

 find /home/chroot/marketing/ -depth -mindepth 3 -type d -exec rm -rf {} \;

Gave that a try, but get same error. Because there is a space in the Directory the RM command can't find it. It somehow needs a way to escape the space like dir\ dirname
# 6  
Old 03-12-2010
Have you considered using find -print0 | xargs construct?
# 7  
Old 03-12-2010
You can try:

... -exec rm -rf '{}' \;

... but I still don't think that the problem is the space in the directory name.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Directories having spaces

Hi I have a list file with complete path of files and there are directories with spaces. Now when i read the list file, read the line and read the file it says no file found because of the space. How can I get through this issues for file in $(<list_file.txt) do first_line=`head -1... (8 Replies)
Discussion started by: lijjumathew
8 Replies

2. Shell Programming and Scripting

Directories with spaces

My code path=`find /root/folder/ -maxdepth 100 -type d | sort --random-sort | head -1` if this returns a directory with spaces in for instance: /root/folder/this is a folder is there a way to replace the value of path with the same value but with the spaces replaced so its... (2 Replies)
Discussion started by: digitalviking
2 Replies

3. Shell Programming and Scripting

find: missing argument to `-exec' while redirecting using find in perl

Hi Friends, Please help me to sort out this problem, I am running this in centos o/s and whenever I run this script I am getting "find: missing argument to `-exec' " but when I run the same code in the command line I didn't find any problem. I am using perl script to run this ... (2 Replies)
Discussion started by: ramkumarselvam
2 Replies

4. UNIX for Dummies Questions & Answers

Using grep command to find the pattern of text in all directories and sub-directories.

Hi all, Using grep command, i want to find the pattern of text in all directories and sub-directories. e.g: if i want to search for a pattern named "parmeter", i used the command grep -i "param" ../* is this correct? (1 Reply)
Discussion started by: vinothrajan55
1 Replies

5. UNIX for Dummies Questions & Answers

Find Exec

Hello All, Is there a way to make exec do a couple of operations on a single input from find? For example, find . -type d -exec ls -l "{}" ";" I would like to give the result of each "ls -l" in the above to a wc. Is that possible? I want to ls -l | wc -l inside... (1 Reply)
Discussion started by: prasanna1157
1 Replies

6. Shell Programming and Scripting

How to find 777 permisson is there or not for Directories and sub-directories

Hi All, I am Oracle Apps Tech guy, I have a requirement to find 777 permission is there or not for all Folders and Sub-folders Under APPL_TOP (Folder/directory) with below conditions i) the directory names should start with xx..... (like xxau,xxcfi,xxcca...etc) and exclude the directory... (11 Replies)
Discussion started by: gagan4599
11 Replies

7. Shell Programming and Scripting

Script to find folders with spaces and end of files and directories

Hi I need a script that can search through a set of directories and can locate any file or directory that has a space at the end Filename(space) Foldername(space) I then need to remove that space within the script Hope someone can help thanks in advance Treds (8 Replies)
Discussion started by: treds
8 Replies

8. Shell Programming and Scripting

find & dirname:problems with white spaces in Directories

Hi all, my problem: (little extract from my bash-script) I want to move each file (.mov) from one directory (and many Subdirectories) to another directory (only one); after moving i want to create hardlinks to the old directories. Thatīs no problem, but now: source-directories... (4 Replies)
Discussion started by: tubian
4 Replies

9. Shell Programming and Scripting

Directories with spaces in name - looking for help with questions in that issue

I need to work with 'nice' directory names which have some spaces in name, and that brings some questions and not-understanding. Would some expert help me out how to deal with that?! My task is to document some processing, running from some script. I do need to have spaces in directories... (2 Replies)
Discussion started by: alex_5161
2 Replies

10. UNIX for Advanced & Expert Users

find and exec

Hi, Happy new year. Would you be so kind to explain me what does this instruction : find /rep/app -type l -exec ls -l {} \;> allink.lst Many thanks. (2 Replies)
Discussion started by: big123456
2 Replies
Login or Register to Ask a Question

Featured Tech Videos