Sponsored Content
Homework and Emergencies Homework & Coursework Questions Find and delete empty files and directories Post 302590790 by Itixop on Tuesday 17th of January 2012 02:31:58 PM
Old 01-17-2012
Question Find and delete empty files and directories

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!

1. The problem statement, all variables and given/known data:
Need to make a script, to remove all empty files and folders from current category.
It also should show the name and creation date of those items.

2. Relevant commands, code, scripts, algorithms:
Must be bash script.


3. The attempts at a solution (include all code and scripts):

Tried this, but it shows only name of deleted folders...
Code:
echo Removed files:
find . -maxdepth 1 -type f -empty;
find . -maxdepth 1 -type f -empty -exec rm {} \;
echo Removed directories:
find . -maxdepth 1 -type d -empty;
find . -maxdepth 1 -type d -empty -exec rmdir {} \;

Then I tried using
Code:
ls

... But it gave too much information.. I just need name and creation time (Ok.. Creation time isn't stored in UNIX.. So I think a date of last modification would be enough.. )

Code:
echo Removed files:
find . -maxdepth 1 -type f -empty -exec ls -l;
find . -maxdepth 1 -type f -empty -exec rm {} \;
echo Removed directories:
find . -maxdepth 1 -type d -empty -exec ls -l ;
find . -maxdepth 1 -type d -empty -exec rmdir {} \;

But in this code first of all it shows only info about files.. For some reason it doesn't show anything about folders. And secondly: That's not that I need. I need name and date (maybe date, maybe date+time) of creation (last modification).

4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):

Vilniaus Kolegija, Vilnius, Lithuania, M.Liogys, PIN11.

Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

how to delete empty files in a shell script

I'm trying to figure out a way to delete empty files in a directory. I have a cron that runs and creates a flat file every 15 mins. However, most times at night the flat file will be empty. I'd like to run a script to delete empty files that end with *.dat Any suggestions? Rich (1 Reply)
Discussion started by: rpnuge
1 Replies

2. Red Hat

Find files older than 30 days in directories and delete them

Hi, I have dummies questions: My script here can find the files in any directories older than 30 days then it will delete the files but not the directories. I would like to also be able to delete the directories that hold old files more than 30 days not just the files itself. find . -type f... (2 Replies)
Discussion started by: lamoul
2 Replies

3. Shell Programming and Scripting

Deleting all empty files in sub directories with a command

Hello Friends, Im trying to delete empty files in subdirectories with a command. I can find them checking only one directory in each step and then show them with my command like below moreover i could not add removing part: ls -l */* | awk '{if ($5==0) printf "%3s %2d %s... (5 Replies)
Discussion started by: EAGL€
5 Replies

4. Shell Programming and Scripting

Deleting empty directories using find

Hello, I'm submitting this thread, because I was looking a way to delete empty directories using find and I found a thread from 2007 that helped me. I have worked from that threat, but I found that the command sent would analyze original directory and may delete it to. I have come up with expanded... (3 Replies)
Discussion started by: lramirev
3 Replies

5. Shell Programming and Scripting

Find directories only and delete them created 3 days before

Hello I have some directories and files created under /export/local/user I would like to delete directories only under /export/local/user, created before 3 days Can someone help me with command to do this task? Thanks (4 Replies)
Discussion started by: needyourhelp10
4 Replies

6. Shell Programming and Scripting

Script to delete empty files

I'm trying to write a shell script to files of zero length in a specified directory, but I keep getting errors. Would anybody be kind enough to look it over for issues? Thanks a bunch in advance. #!/bin/sh if then if then find $1 -type f -size 0 -print|xargs rm exit 0... (1 Reply)
Discussion started by: ScriptingIssues
1 Replies

7. UNIX for Advanced & Expert Users

Delete empty directories recursively - HP-UX

Hi, I want to delete all empty directories in a long directore tree structure. I want to use that from a script that will run on HP-UX 11. My definition of empty directory is that there is no regular file under it and directly beneath it. To elaborate, I have below directories. /app/dev/java... (14 Replies)
Discussion started by: asutoshch
14 Replies

8. Shell Programming and Scripting

Delete empty files from a directory entered in command prompt

My code to "Delete empty files from a directory entered in command promt" #/bin/sh echo "Enter directory" read gh for file in `ls $gh` do # to get the size of file a=$( ls -l file | awk ' {print $7} '); echo $a if then echo "removing file " rm file fi done (6 Replies)
Discussion started by: adirajup
6 Replies

9. Shell Programming and Scripting

Script to go Into Directories and Find/Delete files

I have a task, I usually do manually, but with growing responsibilities I tend to forget to do this weekly, I want to write a script that automates this, but I cant seem to work it out in my head, I have the shell of it out, but need help, and you guys have helped me with EVERY problem I have... (5 Replies)
Discussion started by: gkelly1117
5 Replies

10. Shell Programming and Scripting

Shell script to delete empty files from specific locations

Hi, I need help in regard to developing a shell script to delete empty files from multiple specific locations. The directory paths will be stored in a text file. So the requirement is to read the text file for one specific path and then remove empty files from that particular path. Looping through... (4 Replies)
Discussion started by: Khan28
4 Replies
gpgwrap(1)						      General Commands Manual							gpgwrap(1)

NAME
gpgwrap - a small wrapper for gpg SYNOPSIS
gpgwrap -V gpgwrap -P [-v] [-i] [-a] [-p <file>] gpgwrap -F [-v] [-i] [-a] [-c] [-p <file>] [-o <name>] [--] <file> [<file> ... ] gpgwrap [-v] [-i] [-a] [-p <file>] [-o <name>] [--] gpg [gpg options] DESCRIPTION
The GNU Privacy Guard (gpg) supplies the option --passphrase-fd. This instructs gpg to read the passphrase from the given file descriptor. Usually this file descriptor is opened before gpg is executed via execvp(3). Exactly that is what gpgwrap is doing. The passphrase may be passed to gpgwrap in 4 ways: * as file path, whereat the passphrase is stored as plain text in the file * it is piped from another program to the stdin of gpgwrap * through the GPGWRAP_PASSPHRASE environment variable * gpgwrap prompts for it With no precautions the first point undermines the secure infrastructure gpg provides. But in pure batch oriented environments this may be what you want. Otherwise if you are willing to enter passphrases once and don't want them to be stored as plain text in a file gpg-agent is what you are looking for. Another security objection could be the use of the environment variable GPGWRAP_PASSPHRASE which contains the passphrase and may be read by other processes of the same user. OPTIONS
-V, --version Print out version and exit. -P, --print Get the passphrase and print it mangled to stdout. -F, --file Read gpg commands from the given files. If <file> is - it is read from stdin. Exactly one command per line is expected. The given line is handled in the following way: * In the first place the passphrase is mangled. This means that unusual characters are replaced by their backslash escaped octal numbers. * Secondly the mangled passphrase is stored in the environment variable GPGWRAP_PASSPHRASE. * "exec gpgwrap -- " is prepended to each line, before the result is passed as argument to "sh -c". -h, --help Print out usage information. -v, --verbose Increase verbosity level. -i, --interactive Always prompt for passphrase (ignores -p and the environment variable). -a, --ask-twice Ask twice if prompting for a passphrase. -c, --check-exit-code While reading gpg commands from a file, gpgwrap ignores per default the exit code of its child processes. This option enables the check of the exit code. If a child terminates abnormal or with an exit code not equal 0 gpgwrap stops immediately and does return with this exit code. See also section BUGS. -p <file>, --passphrase-file <file> Read passphrase from <file>. If <file> is - it is read from stdin. The passphrase is expected to be in plain text. If this option is not given the passphrase will be taken either from the environment variable GPGWRAP_PASSPHRASE or it will be prompted on the controlling tty if the environment variable is not set. -o <name>, --option-name <name> Specify the name of the "--passphrase-fd" option understood by the program to be executed. This is useful if you want to use gpg- wrap in combination with other programs than gpg. LIMITATIONS
The given passphrase is subject to several limitations depending on the way it was passed to gpgwrap: * There is a size limitation: the passphrase should be not larger than some kilobytes (examine the source code for the exact limit). * gpgwrap allows you to use all characters in a passphrase even 00, but this does not mean that gpg will accept it. gpg may reject your passphrase or may only read a part of it, if it contains characters like 12 (in C also known as ). * If you set the environment variable GPGWRAP_PASSPHRASE you should take special care with the backslash character, because gpgwrap uses backslash to escape octal numbers, (see option -F). Therefore write backslash itself as octal number: 134. EXAMPLES
1. gpgwrap -p /path/to/a/secret/file gpg -c -z 0 --batch --no-tty --cipher-algo blowfish < infile > outfile Read passphrase from /path/to/a/secret/file and execute gpg to do symmetric encryption of infile and write it to outfile. 2. gpgwrap -i -a gpg -c -z 0 --batch --no-tty --cipher-algo blowfish < infile > outfile Same as above except that gpgwrap prompts twice for the passphrase. 3. gpgwrap -F -i - <<EOL gpg --decrypt --batch --no-tty < "$HOME/infile1" > "$HOME/outfile1" gpg --decrypt --batch --no-tty < "$HOME/infile2" > "$HOME/outfile2" gpg --decrypt --batch --no-tty < "$HOME/infile3" > "$HOME/outfile3" gpg --decrypt --batch --no-tty < "$HOME/infile4" > "$HOME/outfile4" EOL gpgwrap prompts for the passphrase and executes four instances of gpg to decrypt the given files. 4. GPGWRAP_PASSPHRASE="mysecretpassphrase" export GPGWRAP_PASSPHRASE gpgwrap -F -c -v /tmp/cmdfile1 - /tmp/cmdfile2 <<EOL gpg --decrypt --batch --no-tty < "$HOME/infile1" > "$HOME/outfile1" gpg --decrypt --batch --no-tty < "$HOME/infile2" > "$HOME/outfile2" gpg --decrypt --batch --no-tty < "$HOME/infile3" > "$HOME/outfile3" gpg --decrypt --batch --no-tty < "$HOME/infile4" > "$HOME/outfile4" EOL Same as above except that gpgwrap gets the passphrase via the environment variable, reads commands additionally from other files and checks the exit code of every gpg instance. This means if one gpg command has a non zero exit code, no further commands are executed. Furthermore gpgwrap produces verbose output. 5. GPGWRAP_PASSPHRASE="$(gpgwrap -P -i -a)" export GPGWRAP_PASSPHRASE find . -maxdepth 1 -type f | while read FILE; do FILE2="$FILE.bz2.gpg" bzip2 -c "$FILE" | gpgwrap gpg -c -z 0 --batch --no-tty --cipher-algo blowfish > "$FILE2" && touch -r "$FILE" "$FILE2" && rm -f "$FILE" done Read in passphrase, compress all files in the current directory, encrypt them and keep date from original file. 6. find . -maxdepth 1 -type f -name '*.bz2.gpg' | awk '{ printf("gpg --decrypt --batch --no-tty --quiet "); printf("--no-secmem-warning < %s ", $0); }' | gpgwrap -F -i -c - | bzip2 -d -c - | grep -i 'data' Decrypt all *.bz2.gpg files in the current directory, decompress them and print out all occurances of data. If you pipe the result to less you get into trouble because gpgwrap and less try to read from the TTY at the same time. In such a case it is better to use the environment variable to give the passphrase (the example above shows how to do this). 7. GPGWRAP_PASSPHRASE="$(gpgwrap -P -i -a)" export GPGWRAP_PASSPHRASE gpgwrap -P | ssh -C -x -P -l user host " GPGWRAP_PASSPHRASE="$(cat)" ... " Prompt for a passphrase twice and write it to the GPGWRAP_PASSPHRASE environment variable. 8. echo -n "Passphrase: " stty -echo read GPGWRAP_PASSPHRASE echo stty echo export GPGWRAP_PASSPHRASE Another way to prompt manually for the passphrase. It was needed in combination with older versions of gpgwrap, because they did not upport -P. Be aware that with this method no automatic conversion to backslash escaped octal numbers takes place. 9. echo "mysecretpassphrase" | gpg --batch --no-tty --passphrase-fd 0 --output outfile --decrypt infile Cheap method to give passphrase to gpg without gpgwrap. Note that you can't use stdin to pass a file to gpg, because stdin is already used for the passphrase. 10. gpg --batch --no-tty --passphrase-fd 3 3< /path/to/a/secret/file < infile > outfile This is a more advanced method to give the passphrase, it is equivalent to Option -p of gpgwrap. This example should at least work with the bash. 11. gpg --batch --no-tty --passphrase-fd 3 3< <(echo "mysecretpassphrase") < infile > outfile Like above, but the passphrase is given directly. This example should at least work with the bash. BUGS
In version 0.02 of gpgwrap the exit code of gpg was only returned if gpgwrap read the passphrase from a file. Since version 0.03, only -F omits exit code checking by default, but it can be enabled with -c. SEE ALSO
gpg, gpg-agent AUTHOR
Karsten Scheibler gpgwrap 0.04 gpgwrap(1)
All times are GMT -4. The time now is 01:39 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy