Bash - Directory

> Procedural Languages > Bash Shell and (Unix|Linux) Utilities (XCU) > Bash - File System

1 - About

Advertising

3 - Structure

4 - Management

4.1 - Current

4.2 - Get

4.2.1 - 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

4.2.2 - the space for one directory

For one directory:

du -hs
13G 

where the options mean:

  • s: summary
  • h: human readable
Advertising

4.2.3 - 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

where:

  • 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:

$fmw_home/user_projects/domains/bifoundation_domain/servers/AdminServer/logs
$fmw_home/user_projects/domains/bifoundation_domain/servers/bi_server1/logs
$fmw_home/instances/instance1/diagnostics/logs/OracleBIServerComponent/coreapplication_obis1

4.2.4 - Loop through child files

#!/bin/bash
for filename in /$baseDir/dirPath/*.txt; do
    echo $filename
done

4.3 - make a zip file

see also: zip

tar -pczf myDirectory.tar.gz myDirectory/
Advertising

4.4 - move a directory

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

where:

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

4.5 - 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 -)' 

4.6 - copy a directory

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

where:

  • cp = copy
  • r = recursive

It will create the target directory.

4.7 - Delete a directory

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

4.8 - Rename a directory

mv myDirectoryName MyNewDirectoryName

4.9 - Create directory

  • With parent
mkdir -p  /parentDoesnExist/myDir