Bash - Directory






the space by directory recursively

To get the space by directory, you can use the du command. It summarize disk usage of each FILE, recursively for directories.

With a redirection, you can export the result and find the directories that used the most space.

du mydirectory > du.csv

the space for one directory

For one directory:

du -hs

where the options mean:

  • s: summary
  • h: human readable

the top disk usage by directory

The following command gives the top 10 subdirectory from the current directory by disk usage.

du | grep logs | sort -n | cut -f 2- | while read a; do du -sh "$a"; done | tail
3.3M    ./instances/instance1/diagnostics/logs/OracleBIJavaHostComponent
6.3M    ./instances/instance1/diagnostics/logs/OPMN/opmn
6.3M    ./instances/instance1/diagnostics/logs/OPMN
14M     ./instances/instance1/diagnostics/logs/OracleBIPresentationServicesComponent/coreapplication_obips1
14M     ./instances/instance1/diagnostics/logs/OracleBIPresentationServicesComponent
25M     ./instances/instance1/diagnostics/logs
40M     ./Oracle_BI1/cfgtoollogs/oui
40M     ./oracle_common/cfgtoollogs/oui
40M     ./oracle_common/cfgtoollogs
40M     ./Oracle_BI1/cfgtoollogs


  • du list the subdirectory with the disk usage
  • grep filters the result for only the logs subdirectory
  • sort sort the result
  • tail shows only the 10 last lines

For OBI:


Loop through child files

for filename in /$baseDir/dirPath/*.txt; do
    echo $filename

make a zip file

see also: zip

tar -pczf myDirectory.tar.gz myDirectory/

move a directory

mv /path/to/source /path/to/dest


  • mv = move Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Transfer a directory

Transferring folders

  • rsync
  • or with the following pipeline (compress, buffer, transfer and uncompress)
tar cf - [source-path] | mbuffer -m 1024M | ssh [server] '(cd /[destination-path]; tar xf -)' 

copy a directory

cp -r /Path/To/sourceDirectory /Path/To/TargetDirectory


  • cp = copy
  • r = recursive

It will create the target directory.

Delete a directory

  • Remove an empty directory
rmdir directoryName
  • Remove a directory and all sub without prompting
rm -rf letters/

Rename a directory

mv myDirectoryName MyNewDirectoryName

Create directory

  • With parent
mkdir -p  /parentDoesnExist/myDir

Powered by ComboStrap