Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 3 years ago.
Improve this question
Remove only files inside directory and subdirectory
Not the directory
Not the subdirectory
only want to delete the files inside directory and subdirectory
To remove all the files under dir/subdir/file (both dir/subdir/file and dir/subdir/subsubdir/file will be removed):
find dir/subdir -type f -delete
To remove files at most one level below dir/subdir (this removes dir/subdir/file but not dir/subdir/subsubdir/file):
find dir/subdir -maxdepth 1 -type f -delete
To remove dir/file and dir/subdir/file but not dir/subdir/subsubdir/file:
find dir dir/subdir -maxdepth 1 -type f -delete
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 4 years ago.
Improve this question
I need to remove a large number of symbolic links from a folder that has other files which I don't want to remove. Is there any easy way to remove only symbolic links?
You can use the find(1) command
find . -maxdepth 1 -type l -exec rm {} \;
-maxdepth 1 is for only scanning current directory.
-type l is for searching symbolic links
-exec executes rm to delete given file, the {} being replaced by find with an appropriate path, and the \; ending the sub-command run by find
See also the man page of rm(1) (and of ls(1), mv(1), cp(1), ln(1), stat(1) if you want to use them in a variant of that find command).
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 5 years ago.
Improve this question
I have list of files which ends with -live.conf.
e.g.
admin-live.conf
user-live.conf
Above files should be renamed to:
admin-dev.conf
user-dev.conf
please help me how can I achieve with single command.
this is rename stand-alone utility by perl package.
usage :-
rename -n -v 's/live.conf/dev.conf/' *
Proper find + bash solution:
find . -type f -name "*-live.conf" -exec bash -c \
'dir_n=${0%/*}/; fn=${0##*/}; mv "$0" "$dir_n${fn/-live/-dev}"; ' {} \;
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
I have websites folders in my /home directory of centos 7. i want to copy robot.txt and favicon.ico file in all websites directories.
Websites directory structure are as following:
/home/domain.com/public_html
/home/domain2.com/public_html
I want command which copy robot.txt and favicon in all websites public_html directory from /root/robots.txt and /root/favicon.ico and if file already available on the destination folder then the command will overwrite file.
Many Thanks
You can use find too.
find /home -type d -name public_html -exec cp /root/robots.txt /root/favicon.ico {} \;
Just use a simple for loop that processes each directory.
for dest in /home/domain*.com/public_html
do
cp /root/robots.txt /root/favicon.ico $dest
done
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
I have to do this task on linux
find recursively only files in /etc that are larger than 200kb and redirect stdout to a file named FLfindout and redirect stderr to a file named FLfinderr
and I typed in
find /etc 200k > FLfindout 2> FLstderr
and I don't know what the output suppose to be look like. and is this command right?
If I understand your question right you just want to get the list of files greater than 200Kb, you can try
find /etc -type f -size +200
if you want this print into a file, you could try
find /etc -type f -size +200 > file.txt
Try this:
find /etc -type f -size +200k -print > FLfindout 2> FLstderr
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 8 years ago.
Improve this question
I have lot of files in specific folder.
I want to delete all files expect *.html file type in that folder.
Is there any way to do this in command line? I am using Linux.
I'll assume that you refer to linux command line, please update your question if not.
find ./folder/to/look/in -not -iname '*.html' -exec rm {} \;
Here's an explanation of what this does
edit
If you have not too many files then you might want to make find execute one single rm command. You can do that with using + instead of ;
find ./folder/to/look/in -not -iname '*.html' -exec rm {} +
Here's an explanation of this one