10 R functions for Linux commands and vice-versa

linux vs. r commands


This post will go through 10 different Linux commands and their R alternatives. If you’re interested in learning more R functions for working with files like some of those below, also check out this post.

How to list all the files in a directory

Linux R What does it do?
ls list.files() Lists all the files in a directory
ls -R list.files(recursive = TRUE) Recursively lists all the files in a directory and all sub-directories
ls | grep “something” list.files(pattern = “something”) Lists all the files in a directory containing the regex “something”

R


list.files("/path/to/directory")


list.files("/path/to/do/directory", recursive = TRUE)


# search for files containing "something" in their name
list.files("/path/to/do/directory", pattern = "something")


# search for all CSV files
list.files("/path/to/do/directory", pattern = ".csv")


Linux


ls /path/to/directory


ls -R /path/to/directory


# search for files containing "something" in their name
ls /path/to/directory | grep "something"


# search for all CSV files
ls /path/to/directory | grep ".csv"


Getting the top records in a file / object

Linux R What does it do?
head head() Prints the top n records of a file (Linux) / data frame or other object (R)

R


# let df be a data frame
head(df)

head(df, 10)

Linux


head -6 some_file.txt

head -10 some_file.txt

Getting the current directory

Linux R What does it do?
pwd getwd() Gets the current directory

R


getwd()

Linux


pwd

Changing the directory

Linux R What does it do?
cd setwd() Change the current working directory

R


setwd("/path/to/new/directory")

Linux


cd /path/to/new/directory

How to count the number of files in a directory

Linux R What does it do?
ls -1 | wc -l length(list.files(…)) Counts the number of files in a directory

R


length(list.files("/path/to/some/directory"))

Linux


ls -1 | wc -l

How to check file permissions

Linux R What does it do?
ls -l file.info() Returns the file permissions (Linux) / additional info (R)

R


file.info("/path/to/directory/file.txt")

file.info returns additional information about a file besides file permissions, including size, created time, last modified time, and last access time. If you just want to get permissions of the file, just run this:


file.info("/path/to/directory/file.txt")$mode

The permissions are returned in octal; to translate what this octal result means into read / write etc. abilities, see this link.

Linux


ls -l /path/to/directory/file.txt

How to create a new directory

Linux R What does it do?
mkdir dir.create() Creates a new directory

R


# create folder in current directory
dir.create("new_folder")

# create folder in different directory
dir.create("/path/to/new_directory")

Linux


# create folder in current directory
mkdir new_folder

# create folder in different directory
mkdir /path/to/new_directory

How to create a new file

Linux R What does it do?
touch file.create() Creates a new file

R


# create a file in current directory
file.create("new_file.txt")

# create file in different directory
file.create("/path/to/directory/new_file.txt")

Linux



# create a file in current directory
touch new_file.txt

# create file in different directory
touch /path/to/directory/new_file.txt

How to count the number of lines, words, and characters in a file

Though it’s possible to get the number of lines, words, and characters in a file using base R, it’s simpler to do so with the hyperSpec package.

Just use install.packages to install if needed:


install.packages("hyperSpec")

Running the below line of code will print out a data frame with the number of characters, words, and lines in the input file. Similarly, the Linux wc command will print out the same information for a file.

Linux R What does it do?
wc wc() Lists the number of characters, words, and lines in a file

R


library(hyperSpec)

wc("/path/to/directory/file.txt")

Linux


wc /path/to/directory/file.txt

How to copy a file

Linux R What does it do?
cp file.copy() Copy a file

R


# copy file.txt to new_directory
file.copy("/path/to/directory/file.txt", "/path/to/new_directory")

Linux


# option 1
cp /path/to/directory/file.txt /path/to/new_directory

# option 2
cp /path/to/directory/file.txt /path/to/new_directory/file.txt


That’s it for this post. Happy coding! Please check out my other R posts here.